- 博客(28)
- 收藏
- 关注
原创 解析 C++ 中的 inline 关键字及避免多次定义错误的技巧
如果没有使用inline关键字,当该头文件被多个编译单元引用时,会导致多次定义错误。为了解决这个问题,我们可以在头文件中使用inline通过这种方式,编译器将尝试将函数内联展开,而不会在每个编译单元中生成独立的函数定义,从而避免了多次定义错误。
2023-12-04 15:01:36
938
原创 c++中的operator的用法
在C++中,操作符重载(operator overloading)允许您为您自定义的类创建操作符的特定行为。需要注意的是,隐式类型转换可能会导致代码可读性和意图的不明确,因此要小心使用,以避免不必要的歧义和错误。这使你能够创建可调用对象,用于各种不同的情况,例如函数对象、函数指针和函数回调。你可以根据你的需求,重载不同的运算符来定义自定义类型之间的操作。运算符,你可以使一个对象的实例就像一个函数一样被调用。是加法运算符的重载形式,它允许你为自定义的类或类型定义加法操作。在上面的示例中,我们创建了一个名为。
2023-11-01 17:33:07
8485
原创 双指针+滑窗:长度最小的子数组
ntargettarget02子数组[4,3]是该条件下的长度最小的子数组。1错误原因:上述代码在找到满足条件的子数组后直接返回min,而实际上这个min变量存储的是当前的子数组长度,而不是最小长度。当target不再大于0时,就直接返回了min并没有考虑到其是个滑窗,这样会导致错误的结果。最小长度应该是所有满足条件的子数组长度中的最小值。
2023-10-26 23:15:09
132
原创 指针:关于delete p 和 p = nullptr 的使用
指针是C++和其他编程语言中的强大工具,但也可能导致一些难以排查的错误。正确处理指针是编程中的关键任务之一,这篇文章将介绍如何避免悬挂指针问题并正确处理指针。
2023-10-24 13:45:18
537
原创 CMake Error at thirdparty/livox_ros_driver/CMakeLists.txt:6 (find_package):
将终端中的内容全部复制,然后打开clion的设置。点击最下面环境右侧红色框内的文本符号。点击粘贴->确定就行了。
2023-10-23 10:21:57
638
1
原创 C++:禁止在虚拟或覆盖方法上使用默认参数
在C++中,当你在基类中有一个虚拟方法并希望在派生类中进行覆盖时,通常被认为是不好的做法为该方法的参数提供默认参数。这是因为C++中解析要调用的方法版本的机制是在编译时确定的,基于对象的静态类型。而默认参数是在调用点确定的,这可能导致在处理多态性和动态分派时出现意外的、潜在的错误行为。Clang-Tidy的警告消息"禁止在虚拟或覆盖方法上使用默认参数"表明Clang-Tidy检测到了一个编码准则的违规情况。现在,基类和派生类都具有相同的方法签名,你不会遇到虚拟函数中默认参数的问题,这样可以避免潜在的问题。
2023-10-23 09:50:31
223
原创 Clion:多行代码缩进
这会将所选文本块中的每一行向左减少一个制表符宽度(或者你的缩进设置中定义的宽度)。这会将所选文本块中的每一行向右缩进一个制表符宽度(或者你的缩进设置中定义的宽度)。在 macOS 上)。这会自动格式化和对齐所选文本块,根据你的缩进设置和代码样式。:选中多行文本,然后按。:选中多行文本,然后按。:选中多行文本,然后按。
2023-10-18 20:36:56
2178
1
原创 二分查找:在排序数组中查找元素的第一个和最后一个位置
上来就想一起寻找左右区间,搞着搞着就会顾此失彼,绕进去拔不出来了。建议分别寻找目标值的左边界和右边界。正确思路(参考代码随想录)自己一开始编写的错误代码。
2023-10-17 21:39:29
106
原创 二分查找:搜索插入位置
1. 使用 left + (right - left)/2 而不是直接用 (right + left)/2 的原因:right + left 可能是个大数,防止溢出。2. 为什么最终返回 right + 1?
2023-10-17 20:57:32
65
原创 Clion:ctrl+鼠标左键实现函数跳转
右键项目文件夹,点击Mark Directory as->Projects Sources and Headers。
2023-10-07 09:51:10
1054
1
原创 【论文阅读】SLAMesh
目前大多数激光雷达 SLAM 系统在点云中构建地图,这些点云在放大后稀疏,但在人眼看来却很密集。密集地图对于机器人应用程序是必不可少的,比如基于地图的导航。由于网格的低内存成本,近年来网格成为一种很有吸引力的稠密建图模型。然而,现有的方法通常使用离线生成网格图。这两步流程不允许这些方法在线使用构建的网格地图,也不允许本地化和网格化相互受益。为了解决这一问题,我们提出了第一个 CPU 唯一的实时 LiDAR SLAM 系统,该系统可以同时建立网格图并对网格图进行定位。基于高斯过程。
2023-10-01 13:31:16
506
1
原创 kalibr联合标定文件的解释
关于红色虚线的意义红色虚线表示为 three sigma bounds(三倍标准差),数据或测量结果的范围或分布大致受到三倍标准差(sigma)的限制。在统计学和数据分析中,标准差是用来衡量数据分布的离散程度或散布情况的一种度量。具体来说,如果数据或测量结果大致受到三倍标准差的限制,那么大约 99.7% 的数据点或观测值应该位于这个范围内。
2023-09-28 17:27:34
301
1
原创 LOAM详解(二)激光里程计
就像14讲中第六章ceres例题,用100个常量去优化三个未知数,这里也用数个点到线点到面的约束去优化位姿。改进方式:加入信息矩阵,根据点到线面的距离设置权重。
2023-07-20 11:55:16
517
1
原创 LOAM详解(三)激光建图
其中最后整合出一个10HZ的位姿输出方法是:可以看到,q_w_curr以1HZ的频率进行更新,其他情况下用的都是未更新量。
2023-07-20 11:52:27
530
3
原创 【论文阅读】LinK3D
特征提取与匹配是许多计算机视觉任务的基本组成部分,例如二维或三维目标检测、识别和配准。众所周知,二维特征提取与匹配已经取得了很大的成功。遗憾的是,在三维领域,目前的方法由于描述性差、效率低,无法支持三维激光雷达传感器在视觉任务中的广泛应用。为了解决这个问题,论文提出了一种新的三维特征表示方法:三维激光雷达点云的线性关键点表示,称为LinK3D。LinK3D的新颖之处在于,它充分考虑了LiDAR点云的稀疏性场景复杂性等特点,用其鲁棒的相邻关键点来表示当前关键点,对当前关键点的描述提供了较强的约束。
2023-07-18 15:49:54
665
1
原创 Eigen中四元数的赋值法则(结合Ceres中对四元数的更新方法)
本文指在对ceres中EigenQuaternionParameterization类的使用进行总结
2023-05-09 17:44:49
1442
WSL命令行下载注册类问题100%解决(先看资源描述!!!)
2024-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人