
C++
鱼尾sama
脚踏实地,宁静致远。
展开
-
几种排序算法的C++实现
本博客为实验作品,测试下在优快云上此类博客的传播度。// 下面为各个版本的排序算法的实现#include <vector>#include <iostream>#include <algorithm>using namespace std;int getMid(vector<int> &nums, int left, int right);// 快速排序 平均nlog(n),最坏O(n^2),空间:O(nlog(n)),不稳定原创 2021-07-13 21:52:50 · 263 阅读 · 0 评论 -
VS CODE调试ROS/C++程序
文章目录1. 程序编译2. 配置launch.json3. 运行调试该文档将会持续进行更新,涉及ROS调试中遇到的一些问题。C++程序的调试也相仿,只是去掉了启动roscore的部分1. 程序编译这部分并不打算采用vscode的tasks.json来配置编译命令,而是选择手动的运行:catkin_make --only_pkg-with-deps package_name该命令可以单独的编译某个特定的package及其依赖项。需要主要的是CMakeLists.txt应当修改成Debug模式:原创 2021-04-28 16:55:31 · 1080 阅读 · 0 评论 -
QT编写毫米波雷达驱动心得
最近,在写德国大陆毫米波雷达的驱动。由于车上要装八个毫米波雷达,为了节省接口和提高传输速率,使用了CAN转以太网模块,将八路毫米波雷达的数据全都转换成TCP包的形式。本博客主要是记录下遇到的一些问题和解决方法。协议的选择在TCP和UDP之间,考虑到无人驾驶需要可靠性,因此使用TCP。主机在这里面可以作为Client有也可以作为Server。在后端同事的建议下,主机作为Server。这主要是考虑到,这样增加传感器,无需改写代码。框架选择TCP应该还是有挺多框架的吧。我这边选择了QT。QT原创 2021-02-22 16:51:26 · 796 阅读 · 1 评论 -
C++编程为什么需要考虑字节对齐?
很好的解答在这里:https://blog.youkuaiyun.com/zhanglianpin/article/details/19150421对于嵌入式开发者而言,该问题之所以重要是因为我们经常会在不同系统、不同处理器(32位或64位)之间进行移植,这时候如果双方的默认对齐方式不一致,则可能会导致报错,尤其是使用了sizeof(struct)。需要注意的是,通常32位处理器默认的字节对齐为4字节,64位处理器则是8字节。...原创 2021-02-08 17:04:53 · 399 阅读 · 0 评论 -
C++ wait_for
在看xsens的ROS驱动源码时,遇到了如下代码,其中涉及到了多线程里的wait_for函数:// Returns empty packet on timeoutRosXsDataPacket XdaCallback::next(const std::chrono::milliseconds &timeout){ RosXsDataPacket packet; std::unique_lock<std::mutex> lock(m_mutex); if (m_condit原创 2021-01-14 18:09:08 · 8350 阅读 · 2 评论 -
论ROS下IMU的串口通信节点
解决该问题主要有两种方法:1. 中断法在ARM中有IDLE中断这个概念,当串口发完消息,可以向主控芯片发送中断信号,进而进入中断处理程序,这样自然而然也就不会有丢帧问题发生。基于该思路,自然可以直接使用LINUX系统的接口来写程序,但我还是觉得能用库就用库吧。这里选择的是boost::asio::serial这个库,主要代码如下:#include "ros/ros.h"#include "sensor_msgs/Imu.h"#include "imu.hpp"#include <Eigen原创 2020-12-19 20:57:55 · 946 阅读 · 3 评论 -
boost::optional的使用
网上流传的博客找来找去都是那一份,有点长,所以做个更简单的介绍。https://blog.youkuaiyun.com/skdkjzz/article/details/465201311.optional是一个容器, optional对象的结果只有两种情况:无效,或者等同于容器里的元素(元素维度必为1,但元素本身可以是个vector)。无效这种情况可以用于隐式条件判断。2.optional的赋值直接 =...原创 2020-04-22 15:17:49 · 1631 阅读 · 0 评论 -
VS2019 C++编程学习问答——未完
文章目录如何在vs中实现文件重定向(从文件读入数据,输出流cout写入文件)?endl与\n的差别?C++11引入的列表初始化有何意义?这篇博客是阅读《C++ primer》时的一些自我问答。不得不说,这本书非常的棒。一点点地展开整个C++世界,并告诉你这些做法这些规定的缘由。之前我很喜欢慕课的那本C++教程,但现在觉得不如这本。之前由于听说,很难懂,又是大部头,800多页,就直接没打算。蝙蝠...原创 2020-03-17 18:04:44 · 590 阅读 · 0 评论