- 博客(21)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 多线程竞争
C++提供了一些类型的同步机制和线程安全工具。:信号量是一种更为通用的同步机制,它允许限制同时访问某个资源的线程数量。C++11之后,标准库中引入了std::semaphore,但在此之前,你可以使用操作系统提供的信号量实现。:条件变量允许线程在某个条件满足时等待,或者在条件发生变化时被唤醒。条件变量通常与互斥锁一起使用,用于实现复杂的同步逻辑。:原子操作是一种不可中断的操作,能够保证在多线程环境下对共享数据的安全访问。C++标准库提供了std::atomic模板,用于实现原子操作。
2024-03-15 16:58:05
448
原创 easyloggingpp库使用
适用于V9.97项目的开源地址在这里该Log库只需包含一个头文件一个源文件即可,轻量且易于融入项目中。需要c++11。
2023-07-31 17:11:16
1081
原创 配置git用vscode
配置vscode为git的默认编辑器查看git配置git config --list --show-origin直接对配置文件修改git config --global --edit配置vsode为默认编辑器第一步:确保你已经安装了VsCode并且配置了环境变量第二步:配置core.editor属性可以使用命令,也可以直接编辑配置文件,我们先使用命令配置一下使用命令行配置git config --global core.editor "code --wait"执行上面的命令后就可
2022-02-14 09:50:04
2869
1
原创 git恢复修改的文件
只是修改了文件,没有任何 git 操作,直接一个命令就可回退:$ git checkout -- aaa.txt # aaa.txt为文件名修改了文件,并提交到暂存区(即编辑之后,gitadd但没有 git commit -m …)$ git log --oneline # 可以省略$ git reset HEAD # 回退到当前版本$ git checkout -- aaa.txt # aaa.txt为文件名修改了文件,并提交到仓库区(即编辑之后,gitadd和 gi
2022-02-11 18:02:34
2410
原创 C++11 shared_ptr
要确保用 new 动态分配的内存空间在程序的各条执行路径都能被释放是一件麻烦的事情。C++ 11 模板库的 头文件中定义的智能指针,即 shared _ptr 模板,就是用来部分解决这个问题的。只要将 new 运算符返回的指针 p 交给一个 shared_ptr 对象“托管”,就不必担心在哪里写delete p语句——实际上根本不需要编写这条语句,托管 p 的 shared_ptr 对象在消亡时会自动执行delete p。而且,该 shared_ptr 对象能像指针 p —样使用,即假设托管 p 的 s
2022-02-11 14:22:01
401
原创 视觉SLAM14讲第四章学习笔记(未完)
文章目录李群李代数群定义群性质李群李代数群定义三维旋转矩阵构成了特殊正交群 SO(3)SO(3)SO(3) 、变换矩阵构成特殊欧式群 SE(3)SE(3)SE(3)旋转矩阵和变换矩阵对同类型的矩阵做加法,得出的结果不满足旋转或变换矩阵的性质,只有做乘法才满足原先自身所对应的性质,对于这种只有一个运算的几何,称为群。群性质...
2021-10-08 21:05:07
204
原创 Eigen库使用入门
文章目录在CMakeLists.txt中初始化矩阵和向量一些运算求解方程组Ax=b在CMakeLists.txt中cmake_minimum_required(VERSION 2.8)Project(useEigen)find_package(Eigen3 REQUIRED)include_directories(${Eigen3_INCLUDE_DIRS})add_executable(useEigen useEigen.cpp)初始化矩阵和向量#include <iostr
2021-09-25 15:29:36
250
原创 视觉SLAM14讲第三章学习笔记
文章目录刚体运动旋转矩阵变换矩阵刚体运动一个物体,运动过后除位置与姿态外的自身条件不会变,变换后与变换前相差一个旋转和平移。旋转矩阵向量的内积:a⋅b=aTb=∑13aibi=∣a∣∣b∣cos⟨a,b⟩{a} \cdot b=a^Tb=\sum_{1}^{3} a_ib_i=|a||b|cos\langle a,b \ranglea⋅b=aTb=∑13aibi=∣a∣∣b∣cos⟨a,b⟩内积可以描述向量间的投影。向量的外积:a×b=∥e1e2e3a1a2a3b1b2b3∥=[a2b3−
2021-09-23 11:59:44
206
原创 视觉SLAM14讲第一章习题
文章目录习题1习题2习题1有线性方程组 Ax=bAx=bAx=b 若已知 A,bA,bA,b 需要求解 xxx ,该如何求解,这对AAA和bbb有那些要求?提示:从AAA的唯独和秩角度分析答:当b=0b=0b=0时,即Ax=0Ax=0Ax=0时,解的格式为通解,设A=[1222246836810],x=[x1x2x3x4]A=\begin{bmatrix}1 & 2& 2 &2 \\2 & 4 & 6&8 \\3 &
2021-09-21 16:17:04
207
原创 C++实现链栈
C++实现链栈构造链栈类函数实现测试构造链栈类//链栈的存储结构typedef struct StackNode{ SElemType data; struct StackNode* next;}StackNode, * LinkStack;函数实现//初始化void InitStack(LinkStack& S){ S = NULL; //构造一个空栈,栈顶指针置空即可}//入栈int Push(LinkStack& S, SElemType e){
2021-07-09 11:30:07
284
转载 C++实现双向链表
C++实现双向链表创建双向节点创建链表函数实现测试多了个前向指针,注意插入删除时候的修改顺序创建双向节点template<class T>struct DNode{public: T value; DNode* prev; DNode* next;public: DNode() {} DNode(T t, DNode* prev, DNode* next) { this->value = t; this->prev = prev; this-&g
2021-07-09 10:59:52
435
原创 C++实现线性表链式存储
C++实现线性表链式存储链表定义一个节点定义一个链表函数实现测试链表每个元素和下一个元素的地址,存在一个节点中。可以定义一个头结点,头中不存数据,只存地址,指向第一个节点。定义一个节点template<class DataType>struct Node{ DataType data; Node<DataType>* next;};定义一个链表template<class DataType>class LinkList{publ
2021-07-09 10:46:46
772
1
原创 C++实现一个顺序存储线性表
C++实现一个顺序存储线性表定义线性表类模板函数实现测试线性表的第一位是1,是1,是1!!!!!定义线性表类模板const int MaxSize = 100;template <class DataType>class SeqList{public: SeqList() { length = 0; } //构造函数初始化 SeqList(DataType a[], int n); //拷贝构造 ~SeqList() {} int Length()
2021-07-09 10:19:09
474
原创 C++实现一个栈
C++实现一个栈一头进出,先进后出定义栈的类模板函数实现测试一头进出,先进后出定义栈的类模板template <typename Type>class Stack {private: Type* stk; //起始地址 int top; //指向的是栈顶元素 int MAXN;//栈的最大存储容量public: Stack(int size); //初始化一个栈时需要指定初始大小 ~Stack();//析构函数 int push(Type x); //栈顶加入元素 in
2021-07-09 09:34:36
1725
基于canny算子的边缘检测源代码opencv c++
2020-04-25
通过ssh连接win10密码不对但是远程桌面连接能连上
2022-01-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅