![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
有空就来点计算机基础
文章平均质量分 86
wrotcat
路再短也需要出发,路再长也能一步步走到
展开
-
条款02:尽量以const, enum, inline替换#define
尽量少使用宏定义,如果ASPECT_RATIO被定义在一个非你所写的头文件内,为了追踪它会浪费很多时间。作为一个语言常量,AspectRatio肯定会被编译器看到,当然就会进入记号表内。对于浮点常量(比如本例),使用常量可能比使用#define导致更小量的码,因为预处理器“盲目地将宏名称ASPECT_RATIO替换为1.653”可能导致目标码(object code)出现多份1.653,如果改为常量AspectRatio绝不会出现相同的情况。#define ASPECT_RATIO 1.653//解决原创 2022-02-21 18:34:48 · 98 阅读 · 0 评论 -
C++中的Lamda表达式是什么?
在使用c++标准库时,往往会写一些东西来声明意图,如果自己不写就会使用默认版本。函数对象/仿函数可以用lambda的形式来写。C++ 11 introduced lambdas, allowing the definition of inline functionality, which can be used as a parameter or a local object. Lambdas change the way the C++ standard library is used.A la原创 2022-02-10 04:55:12 · 298 阅读 · 0 评论 -
g2o图优化入门学习笔记-雏鹰起飞篇
大局观之整体流程SLAM里,图优化一般可以分解为两个任务:构建图。机器人位姿作为顶点,位姿间关系作为边。优化图。调整机器人的位姿(顶点)来尽量满足边的约束,使得误差最小。这里以g2o源码说明文件中的类图为基础,自己做了一个流程说明。蓝色框可以说明图是如何构成的,绿色框中则是说明了一些求解时的基本信息。小太阳是点出了整个类图最中心的部分SparseOptimizer,而橙色的箭头则是大概指出了写代码的流程。理解了流程之后,就可以对照一下代码:typedef g2o::BlockSolver&原创 2021-12-22 06:10:26 · 763 阅读 · 0 评论 -
多线程基础学习笔记
区别进程&线程进程: 进行中的可执行程序线程:进程可以包含多个线程;- 主线程:从main函数开始,到执行完毕,即主线程结束,进程结束- 其他线程:需要用户自行创建,线程入口可以是某个函数/类/lambda表达式- 进程执行完毕的标志:如果主线程执行完毕,代表整个进程执行完毕,如果此时还有子线程没有执行完也会强行终止多进程并发与多线程并发多进程并发:用一个进程采集slam数据,一个进程来处理数据多线程并发:一个进程中所有线程共享地址空间(共享内存);全局变量,全局内存,全局引原创 2021-12-21 06:25:38 · 202 阅读 · 0 评论 -
GDB调试入门笔记
官网手册:用户手册动机:学这个就是为了找到Segment Default报错的位置根据linux的版本或者是mac,有的可能不是gdb而是lldb,不过这两比较类似,可以类比。一. 基础操作安装时,在终端输入sudo apt-get install gdb 如果需要特定版本,去官网下载源码。Clion中自带gdb,和这个另外安装的是分开的。使用gdb调试之前:在CMakeLists中使用Debug模式set(CMAKE_BUILD_TYPE Debug),或者在编译选项中加入-g,set(原创 2021-11-05 23:11:36 · 551 阅读 · 0 评论