![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 62
明码
敢于迷路,方有出路
展开
-
#include <osqp.h> osqp.h文件不存在
解决方法,将osqp目录复制到/usr/local/include目录下。原创 2024-05-23 16:42:37 · 130 阅读 · 0 评论 -
cmake 卸载
首先需要检查卸载是否存在,使用make help可以看到uninstall 存在,那么直接运行即可,注意是在build文件夹下。原创 2024-05-23 16:37:24 · 447 阅读 · 0 评论 -
cmake自动根据文件名生成可执行文件
避免在创建多个可执行文件反复修改CMakeLists.txt。原创 2024-02-25 14:02:39 · 217 阅读 · 0 评论 -
ROS C++程序终止/结束进程&& 多线程终止运行程序
首先利用signal()函数将stopCmdSigintHandler注册为SIGINT信号的处理程序。起因是在运行机器人的时候,我直接ctrl+C结束程序,但是机器人还在跑,我不得不跟着跑。这个函数还可以停止Ros Spinner对象,如果不用,可以注释掉。于是想写一个结束进程发布停止命令的程序。注意这个函数是类内的静态成员函数。可以看到终止后发布停止命令。原创 2023-09-25 20:49:55 · 719 阅读 · 0 评论 -
Eigen与数组之间的转换
其中MapOptions标识指针是否是对齐的(Aligned),默认是Unaligned, 也就是按列对齐,如果需要按行对齐,则使用RowMajor。为了构建Map变量,我们需要其余的两个信息:一个指向元素数组的指针,Matrix/vector的尺寸。Eigen并没有为matrix提供直接的Reshape和Slicing的API,但是这些特性可以通过Map类来实现。Map对象声明后,可以通过C++的placement new语法来改变Map的数组。StrideType表示内存数组的组织方式:行列的步长。原创 2023-01-30 10:28:07 · 1467 阅读 · 0 评论 -
C++问答2 三大特性
初始化需要特殊处理可以,但有三个条件需要在初始化列表中初始化,而非构造函数构造函数的形参必须是引用类型必须自己提供构造函数来初始化成员变量。普通成员函数形参列表后面加上const的修饰符。构造函数不能为常函数,其本身用于成员的的初始化,析构同理全局函数和静态成员函数也不行,函数体没有this指针函数内this只能对成员变量进行读取而不能修改。如果想要对成员变量进行修改,需要mutable关键字修饰构造函数和析构函数不能为常函数。全局函数和静态成员函数也不能。原创 2022-09-29 16:26:58 · 429 阅读 · 0 评论 -
c++问答 modernC++
c11原创 2022-09-06 21:48:37 · 530 阅读 · 0 评论 -
C++问答1 语言基础
C++对象的另一个名字,是一种复合类型,由其他类型定义的类型,本质是一个指针常量T:函数指针就是指向函数的指针变量,每个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。//f是一个指针,指向一个函数使用场景:call,调用他人提供的API函数;callback,他人的库调用我的函数。......原创 2022-08-25 21:38:01 · 530 阅读 · 0 评论 -
C++问答3 -输入输出
C++ 提供了一系列标准的异常,定义在中,我们可以在程序中使用这些标准的异常。输入流是从标准输入设备,如键盘,流向程序的数据输出流是流向标准输出设备(显示器)的数据C++ 提供了一系列标准的异常,定义在中,我们可以在程序中使用这些标准的异常。异常 描述std::exception 该异常是所有标准 C++ 异常的父类。std::bad_alloc 该异常可以通过 new 抛出。std::bad_cast 该异常可以通过 dynamic_cast 抛出。...原创 2022-08-25 11:49:17 · 351 阅读 · 0 评论 -
leetcode 下一个更大元素
二是进行判断,如果有个元素比栈顶的大,那么判断栈顶元素所对应在nums2的值是否在nums1中出现,由于是按照顺序推入,所以必定。下一个元素为2,同时也是最后一个元素,但2比4小;不能够进入while循环,也就是该位置为原来的值-1。对于快速查找元素是否在另一个集合中是否出现,条件反射想到哈希表,这里由于需要记录下标,需要使用map;单调栈的一个特点是他必定是有序的,此题可分解 为两步,一是建立单调栈,栈中存放的是nums2对应的。...原创 2022-08-09 15:42:11 · 125 阅读 · 0 评论 -
C++: stringToInt
函数原型:int atoi(const char *nptr);函数说明:atoi( ) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过isspace( )函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0。...原创 2022-08-08 19:39:14 · 1944 阅读 · 0 评论 -
priority_queue
T优先级队列,确保优先级别最高的元素总是位于头部。默认less顶堆堆顶元素(大哥大)greater顶堆堆顶元素为何less表示大顶堆呢,原因在于使用原创 2022-08-01 16:37:09 · 152 阅读 · 0 评论 -
按权重生成随机数
题目链接题目大意,输入一个随机数,按数组下标的值比上数组和作为概率返回下标数组并非有序,可以重复以权重数组 [1, 2, 3, 4] 为例,那么选择下标 0 的概率为 10% (1/10),选择下标 1 、2 和 3 的概率一次为 20% 、30% 和40%。考虑如何根据权重比例随机选择一个下标,先按等概率生成 1 ~ 10,则每个数字的概率的都为 10%。如果生成 1 则选择下标 0,概率为 10%;如果生成 2 或 3 则选择下标 1,概率为 20%;如果生成 4、5 或 6 则选择下标 2,概率为原创 2022-07-13 15:10:11 · 1006 阅读 · 2 评论 -
make_shared实现
make_shared和shared_ptr的区别在实现的时候使用的refcount技术,因此内部会有一个计数器(控制块,用来管理数据)和一个指针,指向数据。因此在执行的时候,首先会申请数据的内存,然后申请内控制块,因此是两次内存申请,而则是只执行一次内存申请,将数据和控制块的申请放到一起。那这一次和两次的区别会带来什么不同的效果呢?这使得make_shared效率更高,因为内存分配是代价很高的操作,参数求值的顺序不会异常。但:string用法可变参数包https://blog.csdn.net/Tuxe原创 2022-07-12 20:03:47 · 776 阅读 · 0 评论 -
数组与智能指针
可以通过shared_ptr定义数组,但shared_ptr的析构函数只会释放数组的第一个对象,导致内存泄漏,因此需要提供删除器也可采用自带的unique_ptrunique_ptr没有重载operator*()所以,要使用unique_ptr指向的数组的话,就只能使用operator[]来访问数组元素了,拍_关键使用:①不要让auto_ptr和shared_ptr指向new[]申请的动态内存(除非为智能指针定义一个删除器)原因:auto_ptr 和 shared_ptr 的默认释放内存方式是d原创 2022-06-30 22:42:39 · 484 阅读 · 0 评论