![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 63
sdhdwyx
此人不懒,但是什么都没有写
展开
-
ROS多线程处理方法
需要注意的是, 最好使得每个子流程的处理时间相近, 若子流程之间有相互逻辑关系, 需要加入一些其他的控制标识量.下面线程函数中的循环, 可用于处理耗时较高的任务, 例如地图建模/点云分割/运动规划等。(2) 将耗时高的算法流程分解为多个相对独立的子流程, 每个子流程放在一个新线程中.对于流程较长且循环执行的算法, 如果将所有处理任务都放在一个ROS节点的主线程中,下面主函数中的循环, 可用于处理耗时低的任务, 例如传感器数据回调函数。ROS本身占用计算资源较多, 且多传感器的时间戳不同步.原创 2024-06-12 10:02:28 · 295 阅读 · 0 评论 -
ROS自带的OpenCV库和自己安装版本冲突问题现象及解决方法
根据编译过程提示是opencv版本冲突问题,但是仅以警告形式出现,程序可以编译通过并运行,但是运行过程中报错。在工程的CMakeList.txt中指定工程所使用的OpenCV库的具体版本,可以通过设置精确库路径。原创 2024-06-04 11:02:19 · 456 阅读 · 0 评论 -
opencv库与opencv_contrib配置编译过程报错记录及解决
问题原因:opencv_contrib库中opencv库版本设置与安装的版本不符合。错误原因:ceres库版本不符,使用版本为2.2.0。错误原因:ceres库版本不符,使用版本为2.1.0。解决方法:更换ceres-2.0.0。解决方法:更换ceres-2.0.0。原创 2024-05-30 20:43:21 · 297 阅读 · 0 评论 -
c++对vector容器中的自定义对象进行排序(sort)
【代码】c++对vector容器中的自定义对象进行排序(sort)原创 2024-06-01 10:21:14 · 231 阅读 · 0 评论 -
Eigen库常用函数及用法
include // 基本函数只需要包含这个头文件// 固定了行数和列数的矩阵和Matrix3d一致.// 固定行数.// 和MatrixXd一致.// 按行存储;默认按列存储.// 3x3 float 矩阵.// 3x1 float 列向量.// 1x3 float 行向量.VectorXd v;// 动态长度double型列向量x.size() // length(x) // 向量长度C.rows() // size(C,1) // 矩阵行数。原创 2024-05-25 15:44:41 · 307 阅读 · 0 评论 -
C++基础:第八章 深入IO
第八章 深入IO第1节 序第2节 IOStream概述流式IO而非记录IO处理的主要问题表示形式的变化:使用格式化/解析在数据的内部表示与字符序列之间切换与外部设备的通信:针对不同的外部设备引入不同的处理逻辑涉及到的操作格式化/解析缓存编码转换传输采用模板来封装字符特性,采用继承来封装设备特性常用类型实际上是类模板实例化的结果第3节 输入和输出分为格式化和非格式化两类非格式化:不涉及数据表示形式的变化常用输入函数:get/read/getline/gcount原创 2022-03-24 20:51:56 · 772 阅读 · 0 评论 -
C++基础:第七章 函数
第七章 函数第1节 函数基础栈帧结构函数的外部链接第2节 函数详解传值、传址、传引用传参数时的类型退化,传数组时函数形参退化成指针,所以形参不要写数组个数多维数组作为函数参数时void fun(int (*par)[4])int a[3][4] = {0};fun(a);避免退化的写法void fun(int (&par)[3]) int a[3];fun(a);变长参数initializer_list ,变量类型必须相同#include &l原创 2022-03-24 20:48:35 · 766 阅读 · 0 评论 -
C++基础:第六章 语句
第六章 语句第1节 语句基础常见类别:表达式语句,求值后丢弃 2+3;空语句复合语句,用大括号,形成独立的域顺序语句按先后顺序执行实际执行顺序可能产生变换(编译器优化)与硬件流水线紧密结合执行效率较高非顺序语句跳转一般情况效率较低第2节 分支语句if语句else 会与最近的if匹配C++17 常量表达式if constexpr (常量表达式) //编译器优化,避免不会被执行的分支{ //.....}else{ }带初始化语句的i原创 2022-03-24 20:43:22 · 704 阅读 · 0 评论 -
C++基础:第五章 表达式基础与详述
第五章 表达式基础与详述第1节 基础:引入表达式由一到多个操作数组成,可以求值并(通常会)返回求值结果(函数的调用是一种表达式,有时函数不会返回求值结果)最基本的表达式:变量、字面值通常包含操作符(运算符)操作符的特性接收操作数个数:一元、二元、三元操作数的类型操作数是左值还是右值结果的类型结果是左值还是右值优先级和结合性 Operator precedence and associativity(C++ reference)可以通过小括号来改变原创 2022-03-24 15:53:00 · 1074 阅读 · 0 评论 -
C++基础:第四章 数组、vector和字符串
文章目录第4章 数组、vector和字符串第1节 数组注意事项数组的复杂声明数组中元素的访问数组到指针的隐式转换获得s指向数组开头和结尾的指针数组的其他操作C字符串多维数组第2节 vector构造和初始化元素的索引和遍历迭代器iteratorvector相关其他内容第3节 string第4章 数组、vector和字符串第1节 数组将一个到多个相同类型的对象串联到一起,所组成的类型int a ; int b[10]; 区分类型,b的类型为int[10]初始化方式缺省初始化int a[3] =原创 2022-03-16 21:52:14 · 1272 阅读 · 0 评论 -
C++基础:第三章 对象与基本类型
第3章 对象与基本类型第1节 初始化/赋值语句初始化的基本操作:在内存中开辟空间(堆或栈),保存相应的数值在编译器中构造符号表,将标识符与相关内存空间关联值与对象都有类型第2节 类型详述类型是编译期概念,可执行文件中没有数据类型的概念C++是强类型语言引入类型是为了更好的描述程序,防止误用类型描述存储需要的尺寸(sizeof ,标准并没有严格限制)(一种类型对应的是汇编语言中一条简单的易处理的语句,汇编语句与程序的硬件相关)取值空间(std::numeric_limits ,超原创 2022-03-16 21:48:57 · 1144 阅读 · 0 评论 -
C++基础学习笔记:第一章、第二章
文章目录第1章第2节 C++开发环境与相关工具第3节 C++的编译/链接模型预处理编译链接第2章第1节 HelloWorld第2节 系统IO输入输出流 iostream命名空间 namespace第3节 猜数字与控制流第4节 结构体与自定义数据类型第3节 猜数字与控制流第4节 结构体与自定义数据类型第1章第2节 C++开发环境与相关工具C++开发工具:/usr/bin/time +运行程序 打印花费的时间和CPU占用率等(Linux)valgrindcppreference.com原创 2021-10-03 11:23:11 · 146 阅读 · 0 评论 -
Eigen按行或列求和的使用
文章目录1.矩阵求和2.按行、按列求和3.查找最大值的位置1.矩阵求和先构造一个简单的矩阵求和:#include<Eigen/Core>int main(int argc,char** argv){ //申明一个4x4的int矩阵 Eigen::Matrix<int,4,4> warped_eigen; //赋值 warped_eigen<<1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16; //打印出来看看 s原创 2021-05-15 09:42:22 · 3402 阅读 · 0 评论 -
使用std:sort和Eigen根据矩阵某一行/列元素对矩阵的行/列排序
1.对向量排序2.根据行列元素对行列排序原创 2021-05-14 10:09:45 · 2173 阅读 · 0 评论 -
C++使函数返回多个数组
1. 将待返回的数组在外部进行创建,之后作为函数的输入参数被修改,由于函数不需要返回值,不会产生内存泄露之类的问题。举例如下:#include <iostream>const int ArSize = 12;void sum_and_sub(int arr1[], int arr2[], int ArSize, int sum_result[], int sub_result[]);int main(){ using namespace std; int arr1[ArSize]原创 2021-05-05 17:36:09 · 684 阅读 · 0 评论