<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[2302_80225397的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/2302_80225397</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; 2302_80225397]]></copyright><item><title><![CDATA[shell脚本编写]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/141169528</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/141169528</guid><author>2302_80225397</author><pubDate>Tue, 13 Aug 2024 17:33:13 +0800</pubDate><description><![CDATA[这里可以选择休眠一秒，让终端有执行程序的时间。另外，exec bash必须加。]]></description><category></category></item><item><title><![CDATA[ubuntu20.04 ros2与ros1通信和分布式通信]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/141167175</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/141167175</guid><author>2302_80225397</author><pubDate>Tue, 13 Aug 2024 16:47:55 +0800</pubDate><description><![CDATA[左下角add一个image话题类型，然后手动输入话题名称如miivii_gmsl/image0。这是相机在ros2的发布驱动节点，消息类型是image。这是正常现象不用理会，直接执行第二行代码即可。这里执行完第一行source以后会出现提示。然后我们需要知道两台设备的ip地址以及名称。第一个终端在ros1中启动roscore。首先将通信的两台设备连到同一个网络中。的文件 /etc/hosts。第三个终端需要启动发布节点。第四个终端需要启动监听节点。在ros2中执行以下指令。修改完后source一下。]]></description><category></category></item><item><title><![CDATA[C++ 正则表达式匹配字符]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/140967713</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/140967713</guid><author>2302_80225397</author><pubDate>Tue, 06 Aug 2024 22:23:04 +0800</pubDate><description><![CDATA[这里sregex_iterator( ) 函数默认返回的是正则匹配符合条件的。因此我们在创建头部迭代器begin的时候要给参数，三个参数分别表示字。最后用一个for循环将匹配的字符追加到result字符串中。]]></description><category></category></item><item><title><![CDATA[数据结构（栈）的代码实现和测试]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/139065214</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/139065214</guid><author>2302_80225397</author><pubDate>Mon, 20 May 2024 14:53:25 +0800</pubDate><description><![CDATA[STL中实际上也由stack的容器，因此，重复造轮子是完全没有必要的。实现一下栈可以帮助我们更好的理解栈的应用和结构。栈的实现算是非常简单的。]]></description><category></category></item><item><title><![CDATA[数据结构（堆）的代码实现和测试——堆的原理及代码实现]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/138991195</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/138991195</guid><author>2302_80225397</author><pubDate>Fri, 17 May 2024 17:51:05 +0800</pubDate><description><![CDATA[由于堆是由数组实现的完全二叉树，因此我们每次插入新的元素只能将其按顺序放在数组的末尾，然后再进行上推操作将其放到合适的位置（因为此时新元素处于叶子节点，只能上推）由于完全二叉树的特性，前 n / 2 个节点全部为非叶子节点，所以我们只需对n/2 个节点全部进行下推操作完毕即可。所以，堆的存储用数组来实现，而其左右子树以及父亲节点的位置关系依靠数学计算来推导。如果上推成功，那么下推自然推不下去，如果上推不成功，也不影响后面下推的操作。因此，最大堆的根节点是整个堆中最大的，最小堆的根节点是整个堆中最小的。]]></description><category></category></item><item><title><![CDATA[数据结构（图）的代码实现和测试（3）——Dijkstra算法寻找单源最短路径问题]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/138772151</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/138772151</guid><author>2302_80225397</author><pubDate>Mon, 13 May 2024 00:02:29 +0800</pubDate><description><![CDATA[另外，其中的minVertex函数 遍历数组，找出距离最小的一个节点，从这个距离最小的节点开始找这个节点到其他路径的节点。这表示将0号顶点到自己的距离设为0，那么这可以表明这个算法是从0号节点开始查找单源最短路径问题的。根据注释，作者应该是想要将s作为单源寻找的起点，但是，代码中并未涉及到s。Dijkstra算法用于寻找图中的某个节点到其他节点的最短路径的大小。按照以下的图来测试，测试从顶点B到各个顶点的最短路径。B->A    最短路径  5。B->B    最短路径  0。下面是更改过后的代码。]]></description><category></category></item><item><title><![CDATA[数据结构（图）的代码实现和测试（2）——广度优先搜索BFS]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/138723752</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/138723752</guid><author>2302_80225397</author><pubDate>Sat, 11 May 2024 17:41:24 +0800</pubDate><description><![CDATA[另外需要注意的是，在这里我写了一个新的函数：setEdge_undirected();这个函数是为了弥补原来的setEdge函数只能一条一条添加有向边 导致效率低下的缺点。setEdge_undirected函数可以直接在两个顶点之间添加无向边。我们对图的遍历函数进行一些小小的改动，主要将最后测试的DFS改为BFS。在实现队列的代码之后，经过调整，开始着手实现广搜BFS。下面是setEdge_undirected函数的实现。代表从0 2 4 1 3 5的路径进行BFS遍历。之后来看BFS的实现。]]></description><category></category></item><item><title><![CDATA[数据结构（队列）的代码实现和测试（1）——顺序队列实现，以及关于虚函数的理解]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/138630518</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/138630518</guid><author>2302_80225397</author><pubDate>Thu, 09 May 2024 23:00:46 +0800</pubDate><description><![CDATA[每在队尾放进一个新元素后，rear向后移动一位，每从队首提取一个元素之后，front会向后移动一位。因此，不可避免的会遇到数组的长度不够用的问题。因为引入了将数组转化为循环结构，因此判断队列是否满不能直接用 rear == maxsize 来判断，因为有可能数组的前端位置还有空间。在上述代码中，父类的print方法是虚函数，子类的是实函数，我们执行父类的print，输出结果为。这里的解决方法是，将线性数组围成一个环，从而实现空间的重复利用。如果父子都为virtual，那么实际是哪类，就用哪类的方法。]]></description><category></category></item><item><title><![CDATA[数据结构（图）的代码实现及测试(1)——邻接矩阵实现和DFS]]></title><link>https://blog.youkuaiyun.com/2302_80225397/article/details/138507662</link><guid>https://blog.youkuaiyun.com/2302_80225397/article/details/138507662</guid><author>2302_80225397</author><pubDate>Mon, 06 May 2024 21:00:01 +0800</pubDate><description><![CDATA[下面是数据结构图的基本实现的代码，参考Shaffer的书《数据结构与算法分析》按照课本p256的图进行测试，将ABCDEF节点分别作为0，1，2，3，4，5。这里BFS还未作实现，因为需要用到队列，会在代码实现队列后再做这里的内容。运行结果为：表示以0，2，3，5，1，4的路径进行深度优先搜索。并递归实现了基本遍历方式的一种——DFS 深度优选搜索遍历。下面的代码基本实现了图的基类和邻接矩阵实现。学习数据结构最重要的就是落实到代码。2.源文件 Graph.cpp。1.头文件 Graph.h。]]></description><category></category></item></channel></rss>