目录开始一条轨迹MapBuilderBridge类的AddTrajectory函数MapBuilder类的AddTrajectoryBuilder函数总结前面已经谈到了Cartographer中添加轨迹的方法和传感器的数据流动走向。 我们注意到,在添加轨迹的时候,除了添加位姿估计器还有采样器,订阅回调函数之外,最重要的是通过map_builder_bridg ......
269
0
0
2023-09-11
在C++中有多种实现线程的方式C++11提供的标准多线程方式;第三方库(如:Boost.Thread);操作系统提供的多线程(如:Windows 线程 与 POSIX 线程(pthread))。我们这里先了解的就是C++11提供的标准多线程方式。因为它提供了良好的跨平台兼容性和简洁的语法,已经满足大多数需求。从最简单的开始C++11 引入了多线程支持,提供了 ......
254
0
0
2023-09-11
目录一. string的构造函数的形式:二. string的大小和容量::三. string的字符串比较:四. string的插入:push_back() 和 insert()五、string拼接字符串:append() & + 操作符六、 string的遍历:借助迭代器 或者 下标法七、 string的删除:erase()八、 string的字符替 ......
259
0
0
2023-09-10
目录一、前言二、柔性数组的用法三、柔性数组的内存分布四、柔性数组的优势五、总结一、前言仔细观察下面的代码,有没有看出哪里不对劲?struct S { int i; double d; char c; int arr[]; }; 还有另外一种写法:struct S { int i; doubl ......
227
0
0
2023-09-09
目录链表思维顺序存储结构单链表单链表存储结构 单链表的读取单链表的插入 单链表的删除 单链表的整表创建 头插法建立单链表尾插法建立单链表单链表的整表删除 单链表实例单链表学生系统简单实例双向链表双链表  双向链表实现贪吃蛇思想结构分析:循环链表循环链表实现约瑟夫环实践项目之俄罗斯轮盘赌小游 ......
226
0
0
2023-09-07
目录1.可变参数模板递归函数方式展开参数包逗号表达式展开参数包2.lambda表达式先来看看lambda表达式的例子:lambda表达式语法1.可变参数模板C++11的新特性可变参数模板能够让我们创建可以接受可变参数的函数模板和类模板,相比C++98和C++03,类模板和函数模板中只能含固定数量的模板参数,可变参数模板无疑是一个巨大的改进。可是可变参数模板比 ......
282
0
0
2023-09-07
1.连接池的介绍:1.1应用背景: 一般的应用程序都会访问到数据库,在程序访问数据库的时候,每一次数据访问请求都必须经过下面几个步骤:建立数据库连接,打开数据库,对数据库中的数据进行操作,关闭数据库连接。而建立数据库连接和打开数据库是一件很消耗资源并且费时的工作,如果在系统中很频繁的发生这种数据库连接,必然会影响到系统的性能,甚至会导致系统的崩溃。1.2技 ......
256
0
0
2023-08-20
软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、 多态 ,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。 一、设计模式的分类总体来说设计模式分为三大类 创建型模式,共五种: 工厂方法模式 、 ......
277
0
0
2023-08-20
协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。子程序 ,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。所以子程序调用是通过栈实现的,一个 线程 就是执行一个子程序。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程的调用和子程序不同。 ......
306
0
0
2023-08-17
目录1. 并行基础2. 互斥量与临界区3. 期物4. 条件变量5. 原子操作与内存模型5.1原子操作5.2一致性模型5.3内存顺序1. 并行基础std::thread 用于创建一个执行的线程实例,所以它是一切并发编程的基础,使用时需要包含 <thread> 头文件, 它提供了很多基本的线程操作,例如 get_id() 来获取所创建线程的线程 ID ......
249
0
0
2023-08-08
目录1.类的6个默认成员函数2.构造函数2.1概念2.2特性3.析构函数3.1概念3.2特性4.拷贝构造函数4.1概念4.2特征5.赋值运算符重载5.1运算符重载5.2赋值运算符重载5.3前置++和后置++重载5.4流插入和流提取运算符重载6.const成员7.取地址重载和const取地址操作符重载总结1.类的6个默认成员函数默认成员函数:用户没有显示实现, ......
241
0
0
2023-08-05
目录工厂模式单例模式适配器模式外观模式代理模式桥接模式模板方法模式策略模式观察者模式责任链模式c++常用的设计模式包括单例模式、工厂模式、抽象工厂模式、适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式、观察者模式和命令模式等。使用设计模式的好处:提高代码的可读性和可维护性;将常见的设计问题隔离程序的业务逻辑;重用已有的实现;消除重复代 ......
250
0
0
2023-08-03
目录1、字符型常量2、字符型变量3、字符型数据的输入输出(1)scanf()和printf()函数输入输出字符(2)字符输入函数getchar()总结1、字符型常量字符型常量指单个字符,是用一对单引号及其所括起来的字符表示。例如:‘A’、‘a’、‘0’、’$‘等都是字符型常量。C语言的字符使用的就是ASCII字符集,总共有128个,每个相应的ASCII码都表 ......
272
0
0
2023-07-27
目录简介函数介绍1、init(int x, int fz)2、fill(concol color)3、update()4、getmousepos(pos & p)5、gt(int x, int y)6、HideCursor()7、settextcolor(concol color)8、setbackcolor(concol col ......
298
0
0
2023-07-25
目录1.在通讯录退出前写入文件2.改造初始化通讯录3.通讯录源码文件改造通讯录需要修改的地方:1.在通讯录退出前写入文件在contact.c文件中实现://写入文件(保存通讯录) void SaveContact(const Contact* pc) { //写数据 FILE* pf = fopen("contact.txt", "wb"); ......
235
0
0
2023-07-23