C++11/std::shared_ptr – 循环引用问题
在C++11智能指针的使用过程中,一个很大的陷阱就是陷入了循环引用问题,这个问题类似于大型项目中两个头文件互相包含的问题,而在C++11中如果因为使用智能指针而引发了循环引用问题,那么其结果会导致智能指针无法释放,导致动态内存泄漏。 1 循环引用 下面是一个典型的循环引用示例: class B; c…
- C++
- 2020-04-02
C++11/std::atomic – 原子变量(不加锁实现线程互斥)
1 原子操作 原子操作:一个独立不可分割的操作。多线程编程需要保证线程安全,而线程安全一个很重要的特性就是原子性,即在同一时刻只有一个线程对原子进行操作,保证数据访问的互斥性。 2 C++11原子变量 C++11提供了原子类型std::atomic,可以使用任意的类型作为模板参数。在多线程中如果使用…
- C++
- 2020-04-02
C++11/std::condition_variable – 生产者消费者模型
代码示例: #include <iostream> #include <thread> #include <chrono> #include <mutex> #include <deque> #include <condition_v…
- C++
- 2020-04-01
C++11/std::thread – 线程的基本用法
1 获取CPU核心数量 使用std::thread::hardware_concurrency()获取当前CPU核心数量。 代码示例: #include <iostream> #include <thread> int main() { std::cout << …
- C++
- 2020-04-01
C++11/std::thread – 线程管理join/detach
1 join方法 代码示例: #include <iostream> #include <thread> void HelloWorld() { std::cout << "hello world" << std::endl; } int main()…
- C++
- 2020-04-01
C++11/std::thread – 可作为线程函数的几种方式总结
1 使用普通函数作为线程函数 代码示例: #include <iostream> #include <thread> void ThreadFunction() { std::cout<< "线程函数被启动" << std::endl; } int m…
- C++
- 2020-04-01
Centos7 – nohup方式优雅的部署jar包
1 常规方式 nohup java -jar /home/test/demo.jar > /home/test/log.txt 2>&1 & 该命令的意思是:nohub使用java执行demo.jar这个文件,并且输出日志到log.txt文件,&表示后台运行 2 …
- Linux运维
- 2020-03-31
旋转矩阵与四元数的转换
1 左手坐标系下四元数转换为旋转矩阵 1.1 转换思路 给定一个用于旋转的单位四元数q=w+xi+yj+zk和被旋转的三维向量v,那么首选需要构造一个纯四元数: p=(v,0) 设旋转后的向量为v',那么旋转之后的向量构造的纯四元数为 p'=(v',0) 那么, p'=qpq^{-1} 1.2 转换…
- 3D数学基础
- 2020-03-27
矩阵 – 行主序矩阵与列主序矩阵
1 线性代数中矩阵的标准定义 矩阵的标准定义: 矩阵A与B的乘积矩阵C的第i行第j列的元素c(ij)等于A的第i行与B的第j列的对应元素乘积的和。 无论是Direct3D或者OpenGL,所表示的矢量和矩阵都是依据线性代数中的标准定义的。 2 行主序矩阵与列主序矩阵 矩阵的存储方式分为两种,一种是行…
- 3D数学基础
- 2020-03-20
三维点云重建 – 基于RBF的三维点云表面重建方法
1 基于RBF的三维网格重建 假设已有三维物体曲面S上的N个点的点云数据集SP,以及每个点对应的法向量的集合SN,则一阶多项式隐式曲面函数f\left(p\right)可表达为: f\left(p\right)=\sum_{i=1}^N\;w_i\phi(\parallel p-p_i\parall…
- 三维点云重建
- 2020-03-14
Centos – 更换SSH端口
1 修改SSH配置文件 输入命令: vi /etc/ssh/sshd_config 打开SSH配置文件,找到#Port 22这一行,删除Port 22前的#号,同时在这一行下面新增一个27182端口,如下图所示: 这里需要注意的是,这里要注意,为防止设置新端口失败,暂时先保留22默认端口,即需要把2…
- Linux运维
- 2020-03-11
Visual Studio – 将程序的日志输出到Visual Studio即时窗口
1 Track 使用Track函数,不过这个函数大部分用于MFC环境中,对其他UI框架的支持一言难尽,建议不使用Track函数。 2 LOG系统 自己白手撸一个日志系统,仅限于闲的蛋疼或者想钻研的玩家,在开发时间线比较紧促的情况下不建议使用。 3 OutputDebugString OutputDe…
- Windows编程
- 2020-03-10
最新评论