c++
文章平均质量分 60
HI_Forrest
robotics primary student
展开
-
2023.12.26 c++文件读写操作 fileoption
fstream提供了三个类,用来实现c++对文件的操作(文件的创建、读、写)原创 2023-12-26 21:54:42 · 714 阅读 · 0 评论 -
20231212 cmake 编译中间库
修正 pagmo --> tbb后,需要删除build文件夹中的 makefile 文件,重新生成即可。查看可执行文件最终动态链接的库文件所在位置,因为为了方便移植将各个依赖库均复制到了工程文件夹中。,以TBB_LIB的名字替代了原本工程文件夹路径下的pagmo库,参与了最终编译。将整个编译多个动态链接库,各自调用第三方库,最终可执行程序再调用中间封装库。确保每个库所在的文件夹都有,即可。tbb是 pagmo的依赖库,在该文件夹中未找到pagmo,因此。并不是文件夹中的库,而是系统路径的库。原创 2023-12-12 19:42:28 · 217 阅读 · 0 评论 -
OpenCV depthframe -> pointcloud 导致 segmentation fault!
段错误segmentation fault 总结if m_captenv not initialized, m_captenv[0] is null, will break with segmentation fault.实际上的错误是OpenCV的深度图和彩色图对齐后得到的点云和原始的frame的直接计算点云不一样导致的,对点云的索引导致了段错误,具体原因未知,改成不对齐的深度图计算点云就可以了。...原创 2022-06-08 08:43:02 · 352 阅读 · 0 评论 -
2022-4-21 ubuntu命令行 qt c++程序嵌套 调用
最近看c++ 和Python的混合执行调用发现可以c++程序内通过system函数命令行执行其余的c++ 程序通过不同程序内对cin 输入指令的不同,可以完成不同的功能,即将不同的功能分散到不同的工程框架内,单个可执行程序如果没有与其余模块的交互,或者不需要实时大量数据的传递,则可以将其单独拿出来作为一个可执行程序来运行,同时通过主程序的命令行输入来调用该子程序的可执行文件。看到了前人的经验:C++程序中调用其他exe可执行文件方法C++执行外部程序(调用外部exe程序)示例:remotec原创 2022-04-21 22:27:52 · 1360 阅读 · 0 评论 -
2022-4-10 轨迹规划 梯形速度规划 calctrapezoid
原创 2022-04-10 17:50:16 · 1110 阅读 · 0 评论 -
2022-4-5 eigen 库 vectorxd初始化指定长度
未初始化长度,不能用 [] 操作。原创 2022-04-05 21:44:33 · 1775 阅读 · 0 评论 -
2022-3-23 VectorXd 初始化变量 长度
VectorXd startj(6),goalj(6); startj << 0,0,0,0,0,0; cout << " test .... " << endl<<endl; goalj << M_PI/2,M_PI/3,M_PI/4,M_PI/6,M_PI/5,M_PI;不加 初始长度,则存入数据时内存溢出 VectorXd startj,goalj;编译可以通过,运行时报错:段错误,核心已转储...原创 2022-03-23 10:18:23 · 946 阅读 · 0 评论 -
2022-3-19 fcl库 error while loading shared library fcl.so.0.7 no such file or directory
error while loading shared libraries的解決方法十几年前大佬的解决方案。。。管用。。。在linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了:./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory转载 2022-03-19 19:34:28 · 462 阅读 · 0 评论 -
2022-3-17 fcl库 报错 clock_t has not been declared 或者 stdlib.h: No such file or directory
原因是fcl/common 文件夹里有time.h和usr/include 路径c++标准库的time.h冲突当然是.pro里面includepath 不要有fcl/common 这个就可以了,自己需要包含common里面的头文件的话,从上一级目录开始写就可以了参考解决方案,可能其他时候会用到:Linux Qt下报/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: No such file or directory 错误c++报错信息之‘原创 2022-03-17 16:37:20 · 1276 阅读 · 0 评论 -
2022-3-16 ompl boost DSO missing from command line
ompl point 2d 的demo测试了一下upboard的环境,用的官方小demo,之前没发现,ompl里面用的boost的库时还是需要在.pro里面加上的,按需求加这里报错是需要加上boost的两个库,filesystem和system修改后的.pro如下TEMPLATE = appCONFIG += console c++11CONFIG -= app_bundleCONFIG -= qtDEFINES += BOOST_USE_LIBSOURCES += \原创 2022-03-16 20:51:46 · 396 阅读 · 0 评论 -
2022-3-15 封装静态库调用其他静态库
Linux ar 命令 封装静态库调用其它静态库linux ar命令参数及用法详解–linux建立、修改或抽取备存文件linux ar命令如何编译静态库及将多个.a静态库合并成一个.a静态库.a文件拆分成.o文件然后再组合新.a库静态库链接动态库时,如何使用该静态库静态库libXXX.a并没有把动态库的函数copy到自己身上,只留了符号表,所以main.c要用libXXX.a时,还必须链接动态库libpthread.so。自己封装库可以二次封装一些常用的固定的功能函数,以及保护私有变量不被原创 2022-03-15 21:05:08 · 1193 阅读 · 0 评论 -
2022-3-13 C++ windows多线程
C++多线程编程(入门实例)#include <iostream>#include <windows.h>using namespace std;HANDLE hMutex = NULL;//互斥量//线程函数DWORD WINAPI Fun(LPVOID lpParamter){ for (int i = 0; i < 10; i++) { //请求一个互斥量锁 WaitForSingleObject(hMute原创 2022-03-13 10:50:34 · 434 阅读 · 0 评论 -
2022-2-18 realsense D435i Windows
realsense 深度相机安装官方软件viewer安装sdkhttps://github.com/HIT-orange/librealsense根据Git学习:安装官方软件viewer安装sdk通过vcpkg 安装vcpkg install realsense2:x64-windows参考:hello realsense// License: Apache 2.0. See LICENSE file in root directory.// Copyright(c) 2019 In原创 2022-02-18 19:40:22 · 520 阅读 · 0 评论 -
2022-1-27 数据结构 图 最小生成树 prim kruskal
图的应用最小生成树生成树的概念最小生成树MST构造最小生成树:prim 算法构造最小生成树:kruskal 算法最小生成树生成树的概念最小生成树最小生成树(又名:最小权重生成树)概念:将给出的所有点连接起来(即从一个点可到任意一个点),且连接路径之和最小的图叫最小生成树。最小生成树属于一种树形结构(树形结构是一种特殊的图),或者说是直链型结构,因为当n个点相连,且路径和最短,那么将它们相连的路一定是n-1条。可以利用参考一个问题理解最小生成树,有n个村庄,每个村庄之间距离不同,要求村庄原创 2022-01-27 11:46:05 · 387 阅读 · 0 评论 -
2022-1-26 数据结构 图的遍历 DFS BFS
图的遍历)图的遍历概念深度优先遍历算法步骤(递归或栈实现)实现广度优先遍历算法步骤(用队列实现)算法实现比较图的遍历概念深度优先遍历DFS(Depth-First-Search,深度优先搜索)算法的具体做法是:从某个点一直往深处走,走到不能往下走之后,就回退到上一步,直到找到解或把所有点走完。在实现这一个依次的访问顺序时,操作动作存储与数据结构(栈)的思想及其相似,同时也由于栈的性质,我们可以通过递归来简化栈的创建,因此DFS算法的两种做法分别时利用栈或者递归实现。算法步骤(递归或栈实现)原创 2022-01-26 22:43:55 · 307 阅读 · 0 评论 -
2022-1-26 数据结构 图的存储 邻接矩阵 邻接表 链式向前星
图的概念图的定义一个图G是一个二元组,即序偶<V,E>,或记作G=<V,E> ,其中V是有限非空集合,称为G的顶点集,V中的元素称为顶点或结点;E称为 G的边的集合,所有的边ei都属于E,都有v中的结点与之对应,称ei为 G的边。图的基本概念l 无向图:每条边都是无向边的图。l 有向图:每条边都是有向边的图。l 混合图:在一个图中,有些边是有向边,另一些边是无向边,则该图为混合图。l 有限图:一个图的点集和边集都是有穷集的图。l 零图:边集为空集的图原创 2022-01-26 17:23:49 · 836 阅读 · 0 评论 -
2022-1-26 数据结构 全排列递归 三角形 哈夫曼树
全排列 递归输出1-n(n<10)#include<iostream>#include<cmath>using namespace std; int p[10]= {0}; bool vis[10]= {0};int n;void dfs(int x) { // 从x到n的全排列 if (x==n+1) { //如果排序完n个数据后 for(int i=1; i<=n; i++) //输出一个排列原创 2022-01-26 11:07:08 · 594 阅读 · 0 评论 -
2022-1-25 数据结构 栈stack 队列queue 多返回值 树 深度优先搜索
stack栈、queue队列栈队列queue顺序队列循环队列多返回值树深度优先搜索栈栈是一个线性的数据结构,规定这个数据结构只允许在其中一端进行操作,并禁止直接访问除这一端以外的数据。栈分为数组栈和链表栈,其区别是数组栈使用数组进行功能的模拟,实现较为快速和便利,而链表栈使用链表的思路去设计,实现较为麻烦,但是其稳定不易出错;在链表栈中又分为静态链表栈和动态链表栈,静态链表栈给定栈的空间大小,不允许超过存储超过给定数据大小的元素,而动态栈使用的是自动创建空间的方法进行创建,只要符合机器的硬件要求以及原创 2022-01-25 17:35:51 · 621 阅读 · 0 评论 -
2022-1-24 数据结构基础 链表
数据结构 1资源基础基本概念和术语复杂度内存算法链表单向链表头插法和尾插法遍历修改链表插入链表删除双向链表创建插入删除遍历循环链表初始化创建合并插入删除链式存储结构的优点:资源C语言网 数据结构数据结构学习导图c#实现的排序算法B站数据结构学习笔记B站数据结构课程基础程序=数据结构+算法基本概念和术语1)数据数据(Data)是信息的载体,是可以被计算机识别,存储并加工处理的描述客观事物的信息符号的总称。数据不仅仅包括了整形,浮点数等数值类型,还包括了字符甚至声音,视频,图像等非数值的原创 2022-01-24 20:41:47 · 588 阅读 · 0 评论 -
2022-1-24 stl 容器适配器 迭代器适配器
stl 适配器容器适配器stack 栈适配器创建成员函数queue创建成员函数priority_queue容器适配器创建成员函数迭代器适配器反向迭代器运算符插入迭代器back insertfront insertinsert iteratorbegin()和end()函数用法容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能。之所以称作适配器类,是因为它可以通过适配容器现有的接口来提供不同的功能。本章将介绍 3 种容器适配器,分别是 stack、queue、prior原创 2022-01-24 09:56:18 · 309 阅读 · 0 评论 -
2022-1-24 stl 关联式容器set等
stl 关联式容器set和 map、multimap 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等。举个例子,如下有 2 组键值对数据:{<‘a’, 1>, <‘b’, 2>, <‘c’, 3>}{<‘a’, ‘a’>, <‘b’, ‘b’>, <‘c’, ‘c’>}显然,第一组数据中各键值对的键和值不相等,而第二组中各键值对的键和值对应相等。对于 set 容器来说,只能存储第 2原创 2022-01-24 09:04:39 · 255 阅读 · 0 评论 -
2022-1-23 stl 关联式容器 map multimap
关联式容器关联式容器,包括 map、multimap、set 以及 multiset 这 4 种容器。和序列式容器不同的是,关联式容器在存储元素时还会为每个元素在配备一个键,整体以键值对的方式存储到容器中。相比前者,关联式容器可以通过键值直接找到对应的元素,而无需遍历整个容器。另外,关联式容器在存储元素,默认会根据各元素键值的大小做升序排序。相比其它类型容器,关联式容器查找、访问、插入和删除指定元素的效率更高。弃用序列式容器,转而选用关联式容器存储元素,往往就是看中了关联式容器可以快速查找、读取或者原创 2022-01-23 22:34:05 · 636 阅读 · 0 评论 -
2022-1-23 stl 2 序列式容器 deque list forward list...
deque…deque 是 double-ended queue 的缩写,又称双端队列容器。前面章节中,我们已经系统学习了 vector 容器,值得一提的是,deque 容器和 vecotr 容器有很多相似之处,比如:deque 容器也擅长在序列尾部添加或删除元素(时间复杂度为O(1)),而不擅长在序列中间添加或删除元素。deque 容器也可以根据需要修改自身的容量和大小。和 vector 不同的是,deque 还擅长在序列头部添加或删除元素,所耗费的时间复杂度也为常数阶O(1)。并且更重要的一点原创 2022-01-23 17:08:50 · 688 阅读 · 0 评论 -
2022-1-22 stl 1
stl学习STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸如输入/输出、数学计算等功能。//遍历 vector 容器。#include <iostream>//需要引入 vector 头文件#include <vector>using namespace std;int main(){ vector<int>原创 2022-01-22 21:45:10 · 101 阅读 · 0 评论