自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 python将visio转换为 PDF 文件

读取文件,保存为PDF。

2024-04-03 12:33:53 452

原创 生产者消费者

【代码】生产者消费者。

2024-03-24 20:27:29 99

原创 move性能比较

实现了一个带有移动赋值和移动构造的类,以及一个没有移动赋值和移动构造的类,并实现了一个模板函数,用来比较各种不同容器时,两种类的性能差别。

2024-03-24 17:14:54 213

原创 C++Lambda函数总结

【代码】C++Lambda函数总结。

2024-03-24 15:33:35 115

原创 C++随笔记录

*** 忽略传入参数名前面和后面的空格。*//*** 当传入参数名间存在空格时,编译器将会自动连接各个子字符串,* 用每个子字符串之间以一个空格连接,忽略剩余空格。*/return 0;输出:bbbb 4。

2024-03-23 20:47:51 1013

原创 ubuntu18.04编译OpenCV-3.4.19+OpenCV_contrib-3.4.19

首先确保安装了cmake工具由于本电脑之间装过OpenCV,所以不确定还需要哪些库,如果安装中遇到问题,在寻找解决方法。

2024-03-08 16:07:01 592

原创 Intel RealSense D435环境搭建之安装pyrealsense2

下载对应的whl文件,这里以windows为例,放入到python解释器的site-packages文件夹下。下载地址: pyrealsense2 · PyPI。

2024-03-06 18:01:43 573

原创 kitti数据显示

publish_utils.py添加函数。publish_utils.py中。修改kitti.py。

2024-02-26 22:14:10 383

原创 kitti数据可视化

点击File->Save Config As->选择包下的某个路径,保存为xxxx.rviz文件,下次启动时,使用rviz -d xxxx.rviz即可。解压之后,将Car.dae文件放入到包下的某个文件夹中,这里直接使用原生解压的文件夹目录。选择其中一个图像话题,右键,选择view -》选择image,然后点击play进行播放。这里以 2011_09_26_drive_0005 (0.6 GB)数据为参考,下载。下载完毕之后解压,然后将calibration文件解压后的结果放在如下目录下,

2024-02-26 11:40:44 1191

原创 学习中的零碎的记录

之前没有加shell=True的时候,会出现弹框,加上这个之后再打包就没有弹框出现了。

2023-12-27 00:24:49 678

原创 C++相关闲碎记录(18)

所有等待某个condition variable的线程都必须使用相同的mutex,当wait()家族的某个成员被调用时,该mutex必须被unique_lock锁定,否则会发生不明确的行为。注意:condition variable的消费者总是在“被锁住的mutex”基础上操作,只有等待函数会执行以下三个atomic步骤暂时解除mutex:1.解除mutex然后进入等待状态,2.解除因等待而造成的阻塞。提供了与条件变量一起使用的特性,可以在等待条件满足时自动释放锁,以及在条件不满足时重新获取锁。

2023-12-20 20:43:51 419

原创 C++相关闲碎记录(17)

inline这个控制器用来忽略一行,如果要忽略多行,就调用多次函数ignore(max, c)会略去input stream中的字符c之前的所有字符,如果前面的字符多余max个,就略去max个,如果先遇到stream结尾,就全部忽略。

2023-12-19 13:58:45 1152

原创 C++相关闲碎记录(16)

regex_search(data, regex("(.|\n)*" + pattern + "(.|\n)*")),其中(.|\n)*指任何数量和任意字符,.意指换行之外的任意字符,|表示or。wcmatch:针对“匹配wide C-string(const wchar_t*)”而设计。cmatch:针对“匹配C-string(const char*)”而设计。wsmatch:针对“匹配wstring”而设计。smatch:针对“匹配string”而设计。

2023-12-16 23:05:43 495

原创 C++相关闲碎记录(15)

copy()将string内容复制到调用者提供的字符数组中,其末尾不添加'\0'字符,注意,data()和c_str()返回的字符数组由该string拥有,也就是说,调用者不可以改动它或者释放其内存。如果查找失败,会返回string::npos,使用string的npos值及其类型时要格外小心,若要检查函数返回值,一定要使用类型string::size_type,不能使用int或unsigned作为返回值类型,否则返回值与string::npos之间的比较可能无法正确执行,这是因为npos被设置为-1。

2023-12-16 19:32:08 416

原创 C++相关闲碎记录(14)

priority_queue()内部使用的heap相关算法。自定义stack 类。

2023-12-16 11:40:35 600

原创 C++相关闲碎记录(13)

return 0;输出:return 0;

2023-12-15 21:43:12 434 1

原创 C++相关闲碎记录(12)

第一次调用unique是为了删除连续的重复元素,第二次调用是为了将前面的值大于自身值时,将自身删掉。第二次调用unique_copy() 是移除如果某个元素,它和它前面的元素相差1,则将其移除掉。只有针对随机访问迭代器才可以使用加减操作,否则要使用advance()。自定义随机数生成器传递给random_shuffle()以对元素重新洗牌。

2023-12-15 17:05:18 324

原创 C++相关闲碎记录(11)

自C++11起,如果源端元素不再使用,就使用move()取代copy(),使用move_backward()取代copy_backward()。copy()的destBeg不可以处于[sourceBeg,sorceEnd)区间内,copy_if()源区间和目标区间不可以重叠,copy_backward(),destEnd不可以处于(sourceBeg, sourceEnd]区间内。下面描述的算法会修改区间的内容,有两种方法,使用迭代器过程中修改元素,或者将元素从源区间复制到目标区间的过程中进行修改。

2023-12-14 19:42:26 379

原创 C++相关闲碎记录(10)

判断pair第一个元素是否是终点,就知道最终的结果是否存在,第二次查找是为了找第一个元素比第二个元素大的位置。第一次调用,是寻找连续两个值相等的元素,第二次调用时寻找连续两个,后面的数是前面的两倍。第一次调用mismatch()是查找第一个互异的对应元素,返回类型是。is_sorted(), is_sorted_until()函数。查找满足偶数、奇数、偶数排列的子序列。

2023-12-14 12:16:25 395

原创 C++相关闲碎记录(9)

不可以使用在关联型容器和无序容器中,这些容器的元素是被视为常量,移除型算法只是逻辑上移除元素,手段是将不应该移除的元素往前覆盖应该被移除的元素,因此不改变操作区间元素的个数,返回的是逻辑上的新终点位置。

2023-12-13 19:52:41 380

原创 C++相关闲碎记录(8)

10),2);输出:+10: 16+10 *2: 34x*x*x: 343return 0;

2023-12-12 18:45:48 379

原创 C++相关闲碎记录(7)

让iterator trait 能够处理这样的迭代器,有两种方法:1.提供必要的五种类型定义,就像iterator_traits结构所描述。2.为iterator_traits 结构提供一个偏特化版本。...其中第一个模板参数template用来定义迭代器的种类,第二个参数用来定义元素类型,第三个参数用来定义difference距离类型,第四个参数用来定义pointer类型,第五个参数用来定义reference类型。

2023-12-11 15:12:26 988

原创 C++相关闲碎记录(6)

allItems.find(ItemPtr(new Item("Pizza", 2.22))) //can't be successful,所以这里必须使用find_if算法。面的set使用find的时候,会找出拥有相等value的元素,现在却比较的是内部的指针,交换迭代器的值,迭代器类型不必相同,所指的两个值必须可以相互赋值。

2023-12-10 00:44:28 499

原创 C++相关闲碎记录(5)

注意需要使用decltype产生Lambda类型,作为模板参数,因为Lambda并不存在default构造函数和assignment操作符,因此也必须将Lambda传递给构造函数,而由于这两个是占用第二和第三实参,所以指明第一实参bucket的大小。返回类型不同是因为multiset允许元素重复,而set不允许,将元素插入set内,如果已经有该元素,插入将失败,返回类型是pair。pair中的second成员表示是否安插成功,first成员表示新元素的位置,或者现存的同值元素的位置。multiset接口。

2023-12-08 15:57:23 956

原创 C++相关闲碎记录(4)

举例说明,对list容器调用remove(),算法本身并不知道工作在list容器中,它对所有容器都一样,做一些四平八稳的工作,改变元素,重新排列元素,如果它移除了第一个元素,后面的元素会依次向前覆盖前面的元素,但是这违反了list通过修改指针进行元素删除的优点,为了避免这种情况,list中删除元素,使用成员函数会比remove()算法高效。(2)迭代器如果指向结束位置,并不指向任何对象,不能对其调用operator*或者operator->操作,适用于任何容器的end(), cend(), rend();

2023-12-06 12:52:42 953

原创 C/C++学生选课/排课系统[2023-12-3]

修选修课(如选修X17,则自动添加X16并给出。4、输出已选课程列表,并统计选修课总学分;3、删除已选的选修课(1门或多门);6、其他个性化功能,如自动添加选修课的先。2、从键盘输入拟添加的选修课信息;提示)、重复添加课程提示,等。1、从文件读入课程信息;5、给出课程的排课顺序;

2023-12-03 22:00:17 477

原创 C++相关闲碎记录(3)

/在ptr所指的前len个byte中找出字符c//比较ptr1和ptr2所指的前len个byte//将fromPtr所指的前len个byte复制到toPtr//将fromPtr所指的前len个byte复制到toPtr(区域可重叠)//将ptr所指的前len个byte赋值为字符c。

2023-12-01 21:36:08 561

原创 C++相关闲碎记录(2)

指向某常量类型的reference本身并不是常量,所以不可以移除const,add_pointer必然包含使用remove_reference,然而make_signed和make_unsigned必须是整型,枚举型,bool除外,所以传入引用会导致不明确的行为。指向const类型的非常量指针或者引用,并不是一个常量,尽管内含元素是常量,例如const int* 并不是常量,只是描述指针所指向的这个变量是常量类型,但是指针本身可以重新指向新的变量。指定自定义删除器:通过类的方式指定。

2023-11-30 14:10:02 1076

原创 C++相关闲碎记录(1)

(2)使用响应的shared_ptr构造函数明确的将weak_ptr转换为一个shared_ptr,如果对象不存在,构造函数会抛出异常bad_weak_ptr异常,其what()会产生bad_weak_ptr。(1)调用expired(),它会在weak_ptr不再共享对象时,返回true,等同于检查use_count()是否为0.如果不确定weak_ptr背后的对象是否存活,可以使用如下三个方法检查weak_ptr。7、C++解析CSV文件到vector中。使用shared_ptr处理共享内存。

2023-11-27 10:29:21 921

原创 强化学习各种符号含义解释

上面的公式很好理解,在最优策略下,给一个状态s,这个策略肯定能够选到最好的动作去执行,那么当前状态的价值函数就不是去求所有动作价值函数的期望了,而是就等于动作价值函数最大的那个值。之间的关系,同理另外一种转换关系是,执行一个动作之后得到的及时奖励值+下一个状态的状态价值函数的折扣,即为。下的价值,也就是这个状态能够在最优策略下获得的期望回报,最终都转化为了奖励的计算。的值就是在状态s之下能够采取的所有动作的动作价值函数的期望,即为。是最优策略,最优策略就是能够获得最大的策略期望的策略,即为。

2023-11-18 17:05:42 236

原创 笔试面试相关记录(13)

如果链表为三个结点,则选中第一个,还剩最右边一个,还需一次操作,选中中间,只需一次,选中最右边的,还剩最左边的一个,期望值为1/3 * 2 + 1/3 * 1 + 1/3 * 2 = 1.66666667。解释:4合并到3上,变为{2,7,1,2,2,3},2合并到1上,变成{2,7,3,2,3},2合并到3上,变成{2,7,5,3}如果链表为四个,则期望为1/4*2 + 1/4*2 + 1/4*2 +1/4*2 = 2。输入如下:{2,3,4,1,2,2,3}输出:{2,7,5,3}

2023-11-16 00:24:13 104

原创 配置Raspberry自动连接WIFI,在无法查看路由器的校园网情况下使用自己电脑热点

之前按照博主的做法,通过网线将树莓派和自己电脑连接,并且可以ssh连上电脑,但是就是没法连上热点,后来经过思考,应该是我在使用以太网共享电脑连接的时候,树莓派就没法通过WIFI共享的方式连上我的电脑,所以得先按照上述的方式,把共享方式改成本地连接这种,才可以连上。将TF开插入树莓派,重新启动,即可连接成功。打开控制面板->网络和Internet->网络连接。则按如下操作:win+x键,打开并选择设备管理器,再打开移动热点,选择开启热点。再根据ssh连接树莓派即可。再重复之前的共享操作即可。

2023-11-03 12:08:38 1082

原创 无显示器和网线安装树莓派4B Raspbian 操作系统

将以上两个值粘贴到wpa_supplicant.conf文件的指定位置中,然后保存,将TF卡从电脑中取出,插入到Raspberry 的卡槽中,接电源,启动Raspberry,如果一切正常的话,会自动连接到电脑的热点,然后就可以从热点的设备列表中查看到Raspberry的IP地址了,就可以根据IP地址进行SSH连接,但是等了半天,仍然没有任何设备连接上电脑的热点。打开cmd,输入diskpart,依次执行如下命令,选择盘符时,一定要选择清楚,不要选择错了盘符,导致数据丢失。下载时候,解压安装,启动。

2023-11-03 09:49:27 297

原创 某数据库为提升搜索效率,对某一整型字段构建二叉搜索树(BST)

为了压缩搜索树规模,该数据库为每个结点增加一个字段,该字段用于存储中序遍历时在访问该结点之前访问的结点数据。在该改进下,被存储的结点如果为叶子结点,该结点在新树中将被删除,以提高存储效率。1<=n<=100000:第二行为n个int数据,为该BST的先序遍历结果(保证顺序是正确的,并保证数据两两不同)。输出共一行:第一行为新BST的先序遍历结果,依序输出结点数据以及保存的其他结点数据(若没有则输出字符-)给定该BST的先序遍历(第二个字段未给出),请编写程序,输出经过压缩后新BST的先序遍历结果。

2023-11-02 10:50:41 72

原创 笔试面试相关记录(12)

(7)输入链表,和一个数字n,输入链表中倒数第n个数字,如果链表有环,则输出0,如果链表没环,但是n超过了链表长度,则输出-1,否则输出对应的数字。(8)输入多个数组区间,合并之后,找出缺失的区间,如果没有输出-1。

2023-11-01 11:44:39 241 1

原创 Linux系统编程(4)

memccpy()函数的行为如同memcpy(),但是如果此函数在src的前n个字节中发现了字节c,则停止复制,此函数会返回一个指针,指向dst中的c(如果找不到c,则指向NULL)之后的下一个字节。mempcpy()函数的执行如同memcpy(),但是它会返回一个指针,指向复制的最后一个字节的下一个字节,如果有一组数据想要复制到连续的内存位置,这会很有用。此函数会比较s1与s2的前n个字节,如果相等,返回0,如果s1<s2,返回<0的值,如果s1>s2,则返回.>0的值。除了kill,可以使用。

2023-10-23 21:42:49 100

原创 LInux系统编程(3)

执行成功时,remove会从文件系统中删除path并且返回0,如果path是一个文件,调用unlink,如果path是一个目录,则调用rmdir()llistxattr()的行为如同listxattr(),当path是一个符号连接时,返回的是链接本身(而不是链接的目标文件)有关的拓展属性。执行成功时,listxattr()返回path文件的拓展属性列表,存入list中,函数返回列表的实际大小,以字节为单位。如果size为0,则不会存入value中,只返回值的大小,让应用程序决定缓冲区的大小,方便进行存储。

2023-10-23 10:18:38 509

原创 笔试面试相关记录(11)

【代码】笔试面试相关记录(11)

2023-10-20 01:17:48 415

原创 wsl使用vscode连接,远程安装C/C++ 拓展时,报错

启用虚拟机功能:桌面搜索框输入“启用或关闭Windows功能”Ubuntu-18.04 是和上面查询出来的名称相同。确保以下三个是打开状态:设置完毕需要重启。再次搜索C/C++插件,就可以完成安装。(1)使用管理员打开cmd,输入如下命令。此时再次启动vscode,打开设置选项。(2)以上输出说明是wsl1,setting.json文件。升级wsl到wsl2就好了。转换成功提示如上图所示。

2023-10-17 01:43:31 1127

原创 笔试面试相关记录(10)

(2)给定一个数组表示强盗,strength[i] = x,表示强盗i有力量x,小明起初时的力量是0,每天都会增加力量y,如果小明的力量大于等于强盗的力量,则表示小明可以战胜强盗,当小明战胜强盗后,小明的力量变成0,并且y++,如果小明没有战胜强盗,则等待下一天,小明每天会先增加y的力量,问最少多少天可以战胜全部的强盗。(下面这个通过了90%)(1)马走棋盘,只能走‘日’字形,起点在(0,0),给定一个点[x,y](-300<=x,y<=300),问最少多少步可以到达?每个数字都很大,我的暴力解法超时了。

2023-10-15 20:07:46 280

kitti数据显示、物体2D/3D检测框、历史轨迹、IMU数据在rviz中显示

程序所用到的源代码

2024-02-26

C++11StdLib Table of Code Examples

C++11StdLib Table of Code Examples

2023-12-20

KITTI数据集通过evo转换成tum数据,对应的结果,以及xx.txt的poses文件和times.txt的时间戳文件

KITTI数据集通过evo转换成tum数据,对应的结果,以及xx.txt的poses文件和times.txt的时间戳文件

2023-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除