Clay's Blog
  • 🔍 搜索
  • 🏡 主页
  • 📒 记录
  • 📛 标签
  • 📁 归档
  • 📖 关于
主页 » 📒 记录

📚 学习

常见排序算法及稳定性

1. 代码 /* * @Brief: 常见排序算法汇总 * @Author: * @Date: 2021-07-01 */ #include <iostream> #include <algorithm> #include <vector> #include <queue> using namespace std; void printArray(int *a, int len){ for(int i = 0; i < len; i++) cout << a[i] << " "; cout << endl << endl; } void bubbleSort(int *a, int len){ for(int i = 0; i < len - 1; i++){ for(int j = 0; j < len - i; j++){ if(a[j] > a[j+1]) swap(a[j], a[j+1]); } } } void selectSort(int *a, int len){ for(int i = 0; i < len; i++){ int mi = i; for(int j = i; j < len; j++){ if(a[j] < a[mi]) mi = j; } if(i != mi) swap(a[i], a[mi]); } } void insertionSort(int *a, int len){ for(int i = 0; i < len;...

2021-12-20    1023字    Clay    数据结构与算法

2C4T与4C4T在计算密集型任务下的效率对比

1. 环境 机器1:Intel(R) Core(TM) i5-4200H CPU @ 2.80GHz,双核四线程,win10 x64,16G内存 机器2:Intel(R) Core(TM) i3-9100T CPU @ 3.10GHz,四核四线程。wn10 x64,8G内存 目的:大概测试一下2C4T与4C4T在计算密集型任务下的效率提升对比,内存大小、频率暂且忽略。 方法:使...

2021-10-03    624字    Clay   

C++学习记录(13) new与delete

0. placement new 即 原地构造。 用法: int *p = new int(10); // new operator new(p) int(1000); // 在 p 指向的内存上 构造一个int对象,即placement new // 此时 *P 为 1000。 因为是在一个已有的空间上构造对象,所以,空间的释放,就由free或者delete负责了。 0.1 重载placement new 与后边的 3 :operator new的重载无...

2021-08-20    2064字    Clay    C++

小数在计算机中的存储方式

0. 小数在计算机中的存储 两种方法: 定点 浮点 1. 定点数 顾名思义,小数点的位置固定的。 也就是说,用固定数量的bit存储整数部分,也用固定数量的bit存储小数部分,另外再用一个bit存储符号位。 计算时,将三个部分拼接起来,加个小数点即可。 优点:小数点位置固定,方便计算。 缺点:表示输的范围受...

2021-08-17    485字    Clay   

C++学习记录(12) 类型转换

0. 必要性 C语言中的类型转换,没有安全检查,安全性需要程序猿来保证,C++提供了4种类型转换的方法,在一定程度上保证转换的安全性。 重点是 dynamic_cast 1. const_cast 仅用于去除类型的const属性,也是四种类型转换中,唯一可以去掉const限制的方法。 只能转换 指针、引用、this(在类内的时候用)。 2. static_cast 隐...

2021-08-02    739字    Clay    C++

C++学习记录(11) 智能指针

1. 什么是智能指针 简而言之,为了更安全的使用指针。 实现方式简单来说,就是用一个模板类把一般的指针包装起来。用这个类来维护内部指针的释放操作。 std中有四种智能指针。 auto_ptr(已弃用) unique_ptr shared_ptr weak_ptr 2. auto_ptr 比较简单的智能指针,实现逻辑如下代码。 实现的原则是:内存空间只能由一个指针所拥有。...

2021-07-10    2502字    Clay    C++

Wireshark配合TCP调试工具理解TCP三次握手和四次挥手过程

0. 原材料 抓包工具:wireshark 许多文章都是使用浏览器去访问一个网站,抓http的包,进而分析下层的tcp协议过程,但是数据比较多,不清晰,所以我采用了TCP调试助手,这样的话,没有http数据的干预,比较清晰。 1. 环境 借用www.huawei.com的ip地址183.66.1...

2021-07-06    704字    Clay    Tcp

C++学习记录(10) 内存对齐

0. 为什么要内存对齐? 经过内存对齐之后,一个最最主要的原因是可以使得CPU的内存访问速度大大提升。 内存空间按照byte划分,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列...

2021-06-25    526字    Clay    C++

C++学习记录(9) 常量折叠

转自:https://www.cnblogs.com/stemon/p/4406824.html 前几天女票问了我一个阿里的面试题,是有关C++语言的const常量的,其实她一提出来我就知道考察的点了:肯定是const常量的内存不是分配在read-only的存储区的,const常量...

2021-06-24    3466字    Clay    C++

双目立体视觉的成像原理及相关问题

序: 记录学习过程中自己的理解以及遇到的问题,慢慢补充。 若有错误,还希望各位大佬不吝赐教。 0. 零零散散 0.1 公开数据集 Middlebury:https://vision.middlebury.edu/stereo/data/(室内) KITTI:http://www.cvlibs.net/...

2021-04-25    3012字    Clay    双目视觉

SGM算法开源库libSGM在windows下的编译和使用

0. 原材料 libSGM开源库是一个使用CUDA对半全局匹配算法SGM的加速实现版本。 英伟达显卡(算力 >= 3.5) cuda环境(我的版本是cuda 10.0) OpenCV(版本 >= 3.0) Cmake(版本>=3.1) 1. 源码下载和编译 1.0 代码clone 开源库地址: https://github.com/fixstars/libSGM 先把代码clone到本...

2021-04-23    639字    Clay    双目视觉

Windows环境下配置MQTT服务器(mosquitto)

0. 原料 windows系统的主机 mosquitto软件 1. 下载和安装mosquitto mosquitto可以自己到GitHub上下载源码根据自己实际需求进行编译,也可以直接使用官方提供的二进制文件,我这里直接用的官方二进制文件。 到http://mosquitto.org/files/...

2021-04-10    820字    Clay   

C++学习记录(8) 模板

0. 模板 C++中除了有面向对象的思想,还有泛型编程的思想,泛型编程利用的主要技术就是模板。 C++中两种模板:函数模板、类模板 语法: template<typename T> 函数声明或定义 含义: template 固定的,声明创建模板 typename 表明后边的T是一种数据类型,也可以用class代替 T 类似形参,任意的合法字符都可以,习惯上用 T 模板有两种...

2021-02-20    2424字    Clay    C++

C++学习记录(7) 多态

0. 基本语法 多态是面向对象的三大特性之一。 多态:多态即调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。 多态分为两类 静态多态:函数重载 和 运算符重载 属于静态多态,是对函数名的复用。 动态多态:派生类和虚函数实现运行时多态。 静态多态的函数地址早绑定, 编译阶段确定函数地址。 动态多...

2021-02-17    1186字    Clay    C++

C++学习记录(6) 继承

0. 基本语法 继承是面向对象的三大特性之一。 class 子类 : 继承方式 父类 从父类继承来的表现其共性,而新增的成员表现其个性。 1. 继承方式 三种继承方式 public protected private 父类中的private成员,无论哪种方式都不能访问。 2. 继承中的对象模型 问题:从父类继承来的成员,哪些属于子类对象中? 输出子类的sizeof可以...

2021-02-17    680字    Clay    C++
« 上一篇  下一篇  »
© 2025 Clay's Blog Powered by Hugo & PaperMod