
C++
星辰和大海都需要门票
山不在高,有仙则名。有问题,欢迎小伙伴私聊哦
展开
-
c++知识点9:std::mutex mBuf的使用
#include <mutex>//互斥锁头文件std::mutex mBuf;//接下来五个Handler函数为接受5个topic的回调函数,作用是将消息缓存到对应的queue中void camera0CloudHandler(const sensor_msgs::PointCloud2ConstPtr &cameraCloudMsg){ /互斥锁被锁定。线程申请该互斥锁,如果未能获得该互斥锁,则调用线程将阻塞(block)在该互斥锁上;如果成功获得该互诉锁,该线程原创 2022-04-06 16:36:33 · 956 阅读 · 0 评论 -
c++知识点8:三角函数的使用
实际计算中发现:三角函数的输出结果不会输出0,只会输出一个无限逼近于0的数 cout<<"(M_PI)="<<M_PI<<endl; cout<<"cos(0):"<<cos(0)<<endl; cout<<"cos(M_PI/2):"<<cos(M_PI/2)<<endl; cout<<"cos(M_PI):"<<cos(M_PI)<&原创 2021-11-17 14:53:46 · 909 阅读 · 0 评论 -
C++知识点7:常量指针与指针常量
1 常量指针指针的指向可以修改,指针指向的数值不可以改const int *p=& a;2 指针常量指针指向的值可以改,指针的指向不可以改int * const p=&a;3 const既修饰指针又修饰常量原创 2021-11-03 09:56:06 · 298 阅读 · 0 评论 -
C++知识点6:new和delete
**在C语言中,**动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示:int *p = (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间free(p); //释放内存在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存。用 new 和 delete 分配内存更加简单:int *p = new int; //分配1个原创 2021-11-02 14:36:22 · 147 阅读 · 0 评论 -
PCL点云库动手实践知识点3——ICP点云配准
ICP迭代最近点算法思想:对所有的点云进行变换,使得都与第一个点云在统一坐标系中。在每个连贯的点云之间找到最佳的变换,并累积这些变换到全部的点云#include<iostream>//标准输入输出头文件// 包含pcd的输入输出头文件——pcd文件IO操作定义的头文件#include<pcl/io/pcd_io.h>// 包含点类型、结构的数据定义——包含若干PointT数据结构定义的头文件#include<pcl/point_types.h>#includ原创 2021-11-01 16:09:37 · 293 阅读 · 0 评论 -
C++知识点5:C++11 shared_ptr(智能指针)详解
1 C++11 shared_ptr(智能指针)详解内容参考知乎,由于写的非常详细,直接拿过来用了要确保用 new 动态分配的内存空间在程序的各条执行路径都能被释放是一件麻烦的事情。C++ 11 模板库的 头文件中定义的智能指针,即 shared _ptr 模板,就是用来部分解决这个问题的。只要将 new 运算符返回的指针 p 交给一个 shared_ptr 对象“托管”,就不必担心在哪里写delete p语句——实际上根本不需要编写这条语句,*托管 p 的 shared_ptr 对象在消亡时会自动原创 2021-11-01 14:27:23 · 509 阅读 · 0 评论 -
C++知识点4:for循环的两种写法
1 在数组中int arr[10];for(int i=0;i<10;i++){ arr[i]=i;}for(auto &a:arr){ std::cout << a;}输出的结果就是0—9这十个数。for(auto &a : arr)中“auto &a”就是变量名就和上一个for循环中的“int i”一样,与for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++)是一样的。2 在pcl点云库中原创 2021-10-26 09:09:20 · 797 阅读 · 0 评论 -
C++知识点3:构造函数的初始化使用
class Person{public:Person p;private:int m_A,m_B,m_C;}构造函数使用方法1:直接赋初值Person::Person(a,b,c){m_A=a;m_B=b;m_C=c;}构造函数使用方法2://初始化列表初始化属性1)初始化属性值不可以更改的Person::Person():m_A(10),m_B(20),m_C(30){}1)初始化属性值是可以自由灵活更改的Person::Person(int a,int b,int原创 2021-10-22 16:30:07 · 360 阅读 · 0 评论 -
C++专栏目录
C++知识点1:ifstream,ofstream,fstream的使用——将数据读写入文本文件C++知识点2:Eigen库的使用原创 2021-10-22 09:58:28 · 183 阅读 · 0 评论 -
C++知识点2:Eigen库的使用
1 动态矩阵和静态矩阵:动态矩阵是指其大小在运行时确定,静态矩阵是指其大小在编译时确定。·MatrixXd:表示任意大小的元素类型为double的矩阵变量,其大小只有在运行时被赋值之后才能知道。·Matrix3d:表示元素类型为double大小为33的矩阵变量,其大小在编译时就知道。例如:Eigen::Matrix4d m_lidar_to_imu:表示44的矩阵变量。其大小在编译时就知道...原创 2021-10-21 10:26:16 · 2033 阅读 · 0 评论 -
C++知识点1:ifstream,ofstream,fstream的使用——将数据读写入文本文件
1 将数据写入文本文件// 文本文件的写入#include<iostream>#include<fstream>using namespace std;//创建一个空文本,并且规定以追加方式(ios::app)添加数据ofstream foutput("gps.txt",ios::app);//写入需要添加的数据foutput<<info.Longitude<<","<<info.Latitude<<","<<原创 2021-07-07 16:36:34 · 2015 阅读 · 0 评论