随笔分类 -  编程

c++基础,多线程基础
摘要:A-LOAM代码中,用ceres构建优化问题时,有如下代码 struct LidarEdgeFactor { LidarEdgeFactor(Eigen::Vector3d curr_point_, Eigen::Vector3d last_point_a_, Eigen::Vector3d las 阅读全文
posted @ 2024-03-07 11:21 水水滴答 阅读(32) 评论(0) 推荐(0)
摘要:class CostFunctionFactory { public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW CostFunctionFactory(); static boost::shared_ptr<CostFunctionFactory> instance(void 阅读全文
posted @ 2024-03-07 10:26 水水滴答 阅读(25) 评论(0) 推荐(0)
摘要:nav_msgs::OccupancyGrid类型 ### 官方数据解释[nav_msgs::OccupancyGrid](http://docs.ros.org/en/melodic/api/nav_msgs/html/msg/OccupancyGrid.html) ### 测试代码 pub_ = 阅读全文
posted @ 2023-05-29 10:58 水水滴答 阅读(436) 评论(0) 推荐(0)
摘要:主要的测试类 //测试纯虚函数的用法 class Animal{ public: Animal() = default; ~Animal() = default; virtual string color() = 0; static bool eat(); }; bool Animal::eat() 阅读全文
posted @ 2023-04-23 14:58 水水滴答 阅读(29) 评论(0) 推荐(0)
摘要:c++11新标准中decltype类型指示符:作用是选择并返回操作数的数据类型 在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值。 decltype与引用 (1)如果表达式的内容是解引用,则decltype将得到引用类型 (2)如果decltype给变量加上一层或多层括号,编译器就 阅读全文
posted @ 2023-04-20 16:22 水水滴答 阅读(81) 评论(0) 推荐(0)
摘要:const关键要点: 1、必须初始化 2、不能被重新赋值 3、不能将常量引用绑定到普通对象上,会报错 error: binding reference of type ‘int&’ to ‘const int’ discards qualifiers 4、可以将普通对象的常量引用赋值给普通对象 5、 阅读全文
posted @ 2023-04-20 16:17 水水滴答 阅读(401) 评论(0) 推荐(0)
摘要:类模板的几个简单测试例程 几个要点: (1)类模板类型,在实例化时需要显式类型名称 (2)已经显式类型后,传入的参数如果不是相应类型,则会发生强制转换 (3)在类外定义的成员函数,需要加上模板参数列表和类作用域,且类作用域带类型列表 (4)多个参数模板时,可以在函数中使用其中若干个,不用全部都使用。 阅读全文
posted @ 2023-04-17 10:46 水水滴答 阅读(40) 评论(0) 推荐(0)
摘要:模板函数的几种常见写法 几个要点 (1)设置了几个模板类型,就要在函数参数里面至少用一次 (2)函数模板类型名称和其他类型不可重名 (3)函数模板类型不支持隐式类型转换,除非显式类型名称 (4)模板函数和普通函数重载,优先匹配到普通函数 // // Created by ht on 2023/4/1 阅读全文
posted @ 2023-04-16 22:51 水水滴答 阅读(43) 评论(0) 推荐(0)
摘要:前言: explicit是为了自定义类在初始化或赋值时,发生数据类型隐性强制转换为类类型。 特点: 1、只对单实参的构造函数有效 2、只能在类内声明构造函数是用explict,在类外定义时不写explicit 3、explicit的构造函数在生成对象时,只能用直接初始化,不能赋值 示例1: clas 阅读全文
posted @ 2023-04-14 21:31 水水滴答 阅读(145) 评论(0) 推荐(0)
摘要:在c++ 11标准库中,加入了std::tie,在c++ 14中改进,方便使用。 其与tuple关系密切, 主要目的是方便地使用tuple std::tie 一般std::tie有2个作用: 创建一个std::tuple; 解包标准库中的一些集合类,简化访问方法。 元组 std::tuple 元组t 阅读全文
posted @ 2023-04-10 18:39 水水滴答 阅读(53) 评论(0) 推荐(0)
摘要:VINS FUSION里面对时间做了封装,如下 #include <ctime> #include <cstdlib> #include <chrono> class TicToc { public: TicToc() { tic(); } void tic() { start = std::chr 阅读全文
posted @ 2023-04-06 15:30 水水滴答 阅读(42) 评论(0) 推荐(0)
摘要:Node node(node_options, std::move(map_builder), &tf_buffer, FLAGS_collect_metrics); c++11: std::move 是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移, 没有内存的搬迁或者内存拷贝所以可以 阅读全文
posted @ 2022-06-20 08:58 水水滴答 阅读(227) 评论(0) 推荐(0)
摘要:概要: emplace内部实现是多参数模板,保证在插入对象的时候,直接插入构造函数的参数列表。如下例子中,自定义类C的插入 #include <iostream> #include <thread> #include <unistd.h> //休眠时间 #include <vector> using 阅读全文
posted @ 2022-06-17 10:41 水水滴答 阅读(780) 评论(0) 推荐(0)
摘要:ROS bloom deb打包 1、创建简单的功能包 catkin_create_pkg deb_demo roscpp rospy 创建一个.cpp文件,写上测试程序,并编译运行通过。 #include "ros/ros.h" #include <signal.h> void MySigintHa 阅读全文
posted @ 2022-06-10 11:07 水水滴答 阅读(1180) 评论(0) 推荐(0)
摘要:ROS安装过程中,常常会出现rosdep update出错的问题。ROS安装过程中,常常会出现rosdep update出错的问题。参照大神博客完成。 我的系统是ubuntu20.04 mate,python3,按照上面大佬的安装,整理下自己的修改过程,方便后面用到。 1、下载rosdistro到本 阅读全文
posted @ 2022-06-10 10:59 水水滴答 阅读(160) 评论(0) 推荐(0)
摘要:参考官方文档,学习actionlib的基本原理 http://wiki.ros.org/actionlib http://wiki.ros.org/actionlib/DetailedDescription https://gaoyichao.com/Xiaotu/?book=ros&title=A 阅读全文
posted @ 2022-04-24 15:24 水水滴答 阅读(300) 评论(0) 推荐(0)
摘要:小车launch节点开机自启动 搭建好小车的环境,需要考虑如何在每次开机能自动启动某些必要的节点,如各种要用的传感器驱动,底盘驱动等,而不必手动起。这里用到开源的包robot_upstart 1、安装 sudo apt install ros-noetic-robot-upstart 2、新建rob 阅读全文
posted @ 2022-02-16 11:05 水水滴答 阅读(366) 评论(0) 推荐(0)
摘要:1、=delete的作用:避免类成员函数被调用 #include <cstdio> class TestClass{ public: int func(int data){ printf("data is %d\n", data); }; //delete修饰类的成员函数,不允许出现隐式转换 int 阅读全文
posted @ 2021-11-15 14:20 水水滴答 阅读(290) 评论(0) 推荐(0)
摘要:ceres里面用到仿函数,故单独测试一下用法 #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; class LessThenLenFunctor{ pub 阅读全文
posted @ 2021-11-04 10:39 水水滴答 阅读(71) 评论(0) 推荐(0)
摘要:背景:在C++中,动态内存的管理通常是通过一对运算符new,在动态内存中为对象分配空间并返回该对象的指针,可以选择对对象进行初始化;delete,接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。在使用中容易出现问题,因为要保证在正确的时间释放内存是困难的。忘记释放会造成内存泄露。为了更安全 阅读全文
posted @ 2021-11-02 11:58 水水滴答 阅读(259) 评论(0) 推荐(0)