- 博客(59)
- 收藏
- 关注
原创 C++_3——库(functional)与函数对象
C++_3——库(functional)与函数对象1 函数对象2 lambda表达式3 functional4 一些用于理解的引用附录lambda表达式捕获类型参考 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。以C++11标准为基础。C++网站:http://www.cplusplus.com/reference/1 函数对象任何定义了函数调用操作符的对象都是函数对象(也叫仿函数),C++ 支持创建、操作新的函数对象,同时也提供了许多
2022-04-17 15:54:15 1038
原创 C++_4——关键字(extern)
C++_4——关键字(extern) 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。
2022-04-11 15:12:12 668 1
原创 奇怪的知识又增加了9——OTG&USB网络
奇怪的知识又增加了9——OTG&USB网络OTGUSB网络参考OTGOTG是On-The-Go的缩写。其设计的初衷是为了两个“外设”在没有PC(Host)的情况下,也可以通过USB进行数据传输。OTG功能就是具备该功能的设备即可当主设备(host)去轮询别人,也可以当从设备(device)去被别人轮询。具有OTG功能的设备如何确定自己是主还是从设备:通过USB的第五个管脚。原USB接口上有4个管脚,具备OTG功能的USB接口有5个,原来4个分别是VCC/D+/D-/GND,现在增加了一
2022-04-01 16:14:21 902
原创 奇怪的知识又增加了4——磁盘分区与文件系统
奇怪的知识又增加了4——磁盘分区与文件系统磁盘分区 MBR/GPT系统启动检测程序 UEFI与BIOS文件系统 NTFS / FAT32 / exFAT / EXT / APFS参考磁盘分区 MBR/GPTMBR磁盘0号扇区为主引导扇区(称为MBR),早期磁盘扇区大小为512B,其中446B存放启动引导程序,64B存放分区表信息,2B存放标志位。MBR的每个分区信息需要16B,也就是最多可以管理四个主分区。每个分区信息只有4B来记录该分区的总扇区数,因此分区总扇区数限制为232 个,继而分区大小
2022-04-01 15:06:15 1207
原创 C++_12——新特性(基于范围的for循环)
C++_12——新特性(基于范围的for循环) 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。以C++11标准为基础。main.cpp#include "pch.h"#include <iostream>#include <vector>#include <map>#include <set>#include "Range.h"const std::vector<i
2022-04-01 12:23:02 444
原创 ROS2_Foxy学习10——多机激光SLAM准备篇
ROS2_Foxy学习10——多机激光SLAM准备篇1 安装Ubuntu20.04 mate2 安装ROS noetic3 安装cartographer4 详细配置cartographer5 安装RPLidar A16 测试建图6.1 配置cartographer6.2 配置RPLidar A16.3 运行测试7 安装ROS foxy8 安装ros1_bridge8.1 安装8.2 使用与测试9 镜像备份与恢复为了实现多机激光SLAM,在上一篇文章《ROS2_Foxy学习9——多机激光SLAM先导篇》中讨
2022-03-31 21:33:53 2213 5
原创 关于坐标和点的旋转问题
关于坐标系和点的旋转问题坐标系内的点绕原点的转动坐标系内向量的平移与旋转坐标系旋转参考:坐标旋转变换公式的推导一定要搞明白坐标旋转与坐标系旋转的区别坐标系内的点绕原点的转动点A与x轴夹角a,点A绕原点O旋转角度b(逆时针为正,顺时针为负),得到点A’,则A’坐标为 坐标系内向量的平移与旋转向量AB,将A点平移到原点,并旋转向量与x轴重合(逆时针角度为正),则变换后B点的坐标为 坐标系旋转坐标系绕原点旋转角度a(逆时针角度为正),则新坐标系下A’的坐标为
2022-03-28 19:44:54 1689
原创 面试3——准备
面试3——准备1 面经2 知识点2.1 语言/C++2.1.1 特性2.1.2 语法2.2 数据结构&算法2.3 线程2.4 网络2.4.1 TCP2.4.2 七层网络模型2.4.3 PING2.4.4 socket2.5 Git2.6 ROS2.7 自动驾驶规划2.7.1 传感器2.7.2 规划1 面经自我介绍自我定位行业理解项目难点软件架构设计的思路Qt使用的模块为什么选择我们单位为什么选择上海/广州优点/缺点最难的项目,碰到的问题,收获与岗位匹配的技能,自己的优势和劣
2022-03-27 19:18:13 2487 2
原创 C++_3——库(tuple)
C++_3——库(tuple) 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。以C++11标准为基础。C++网站:http://www.cplusplus.com/reference/tuple类似于C语言的结构体,tuple访问成员不用变量名而是变量顺序,tuple内的变量类型可不同基本使用#include <tuple> // 构造std::tuple<int,char> first;
2022-03-27 14:05:34 921
原创 C++_3——库(numeric、limits、math)
C++_3——库(numeric、limits、math)limitsC++数学库numericC数学库math.h 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。以C++11标准为基础。limits这个库给出了编译平台的一些算数类型的属性std::numeric_limits<double>::infinity(); // 返回 double的正无穷大std::numeric_limits<int>::
2022-03-25 18:27:08 2013
原创 C++_3——库(random)
C++_3——库(random)GeneratorsDistributionsGenerators结合Distributions生成随机数 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。以C++11标准为基础。C++网站:http://www.cplusplus.com/reference/random库是C++11引入的随机数生成库,这个库用Generators和Distributions生成随机数;Generators用来生成均匀
2022-03-25 17:22:53 1247
原创 SLAM笔记
SLAM笔记第一部分 初识SLAMSLAM是什么? SLAM应用有什么?SLAM问题的数学表述SLAM分类、相关理论知识、学习资源、研究方向第二部分 视觉SLAM(深蓝)视觉SLAM传感器经典视觉SLAM框架另一种SLAM数学表述的思路三维空间刚体运动李群与李代数相机模型非线性优化视觉里程计特征点法直接法后端回环检测建图编程基础cmakeEigenSophus 李代数OpenCV第三部分 激光SLAM概率机器人——滤波理论概率机器人与递归状态估计贝叶斯滤波高斯/参数滤波非参数滤波概率机器人——运动与感知机器
2021-11-25 22:55:47 361
原创 奇怪的知识又增加了5——TCP
奇怪的知识又增加了5——TCP这篇 TCP 、UDP 绝了!你还在为 TCP 重传、滑动窗口、流量控制、拥塞控制发愁吗?看完图解就不愁了…
2021-09-05 17:20:01 140
原创 C++_11——设计模式_单例模式
C++_11——设计模式_单例模式单例模式(是C++专栏第11篇,非C++11标准…)单例模式【C++】 ——C++单例模式中的饿汉和懒汉模式每个类仅有一个实例,实例被所有程序模块共享饿汉模式下,在定义时实例化,在使用之前造成资源浪费懒汉模式下,在使用时实例化,需要处理线程安全问题应用如,线程池、对话框、日志文件、硬件驱动、注册表…注意指针的释放线程安全的懒汉单例模式(加锁)↓↓↓// SingeltonModel.h文件#include <mutex>#pragma
2021-09-03 16:05:57 185
原创 C++_2——thread & Linux多线程
C++_2——thread & Linux多线程线程的创建、资源回收线程锁线程池线程通信与同步线程安全线程与进程进程间的通信方式其他摘抄和参考线程的创建、资源回收#include <thread>// 构造函数 // 默认构造 thread() noexcept; // 显式构造:输入重载函数的函数指针,导致编译错误 template <class Fn, class... Args> explicit thread (Fn&& fn, Arg
2021-08-27 18:11:28 530
原创 Qt——win10下程序打包发布
Qt——win10下程序打包发布Step 1 release exe文件Step 2 使用windeployqt.exe打包到文件夹Step 3 打包成一个文件参考写这篇博客是因为终于成功打包出去一个程序,之前放到其他设备上总是缺这少那…ok,开始记录…Step 1 release exe文件这一步比较简单,把编译选项从debug模式改成release模式,然后,重新编译运行一遍。会在编译文件夹下的release文件夹内生成那个exe文件。Step 2 使用windeployqt.exe打包到文件
2021-08-05 22:34:44 435
原创 C++_8——开源串口库
C++_8——开源串口库For LinuxCppLinuxSerialFor LinuxCppLinuxSerial一个简单好用的serial库 https://github.com/gbmhunter/CppLinuxSerial下载、编译、安装如下git clone https://github.com/gbmhunter/CppLinuxSerial.gitcd CppLinuxSerial/ && mkdir build && cd build cm
2021-07-21 19:01:37 1730
原创 C++_9——文件读写&输入输出流
C++_9——文件读写&输入输出流继承关系C++文件读写文件读写的类读 ifstream读写缓冲 filebuf备注 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。以C++11标准为基础。继承关系parentc1c2c3c4c5ios_baseiosistreamiostreamfstreamios_baseiosistreamifstream
2021-07-20 20:35:28 535
原创 奇怪的知识又增加了2——软件部署 & Docker
奇怪的知识又增加了(二)什么是部署什么是部署怎么去部署部署工具什么是部署一般,软件从研发到用户使用包括开发和部署两个环节,其中,部署就是让写的程序或者开发的产品在某一个环境下跑起来。按环境的不同,可以分为远程部署和本地部署。怎么去部署1、从源代码生成软件包2、软件包放到某一环境3、配置目标环境使得软件运行(啊,乍一看,好像废话)部署工具...
2021-07-15 15:20:28 499
原创 C++_10——定时器 & Linux下基于信号的进程间通信
C++_10——Linux下定时器 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。以C++11标准为基础。
2021-07-14 15:46:42 175
原创 C++_7——网络通信
C++_7——网络通信(Linux)1 TCPclientserver2 UDP广播发送广播接收3 非阻塞接收4 recv recvfrom read send sendto write 这一系列文章的目的是在学习了C++基础后,继续补充一些C++基础和进阶的知识点,包括C++11的相关内容。1 TCPclient//头文件#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>
2021-07-03 16:23:33 345 1
原创 面试1——剑指Offer笔记(C++)
剑指Offer笔记(C++)1 基础知识1.1 编程语言四个类型转换关键字sizeof复制构造函数面试题1 赋值运算符函数1.2 数据结构数组的效率面试题3 数组中的重复数字面试题4 二维数组查找常量字符串的地址面试题5 替换空格链表源码1 基础知识1.1 编程语言四个类型转换关键字参考static_cast底层无const的一般静态转换,基本类型 / 具有继承关系的类型//基本类型转换int i = 0;double d = static_cast<double>(i)
2021-06-20 15:37:31 230
原创 面试2——题
面试(二)——一些题1、动态规划组最大连续子序列和二维网格与路径1、动态规划组DP问题三步走定义一个动态规划数组,明确数组元素,目的是保存计算的历史记录,节省重复计算时间确定数组间的关系找出初始值最大连续子序列和有一个数组,如1, -5, 8, 3, -4, 15, -8,查找其中连续和最大的相邻串的值。在本例中,最大值为8 + 3 + -4 + 15 = 22。定义动态规划数组元素:dp[i]表示到第i个元素的最大连续子序列和。数组元素间的关系:dp[i] = max{ dp
2021-06-20 15:35:35 149
原创 运动规划学习笔记5——ROS包_tf2
在这里分享了运动规划方面的一些基本的算法原理和伪代码实现,其中内容可能存在不完善和错误之处,如有读者发现,欢迎批评指正。
2021-06-03 15:23:39 461 1
原创 运动规划学习笔记4——探索OMPL
在这里分享了运动规划方面的一些基本的算法原理和伪代码实现,其中内容可能存在不完善和错误之处,如有读者发现,欢迎批评指正。
2021-05-31 20:23:10 1327
原创 数据结构学习3——树
数据结构学习(三)树树的结构树的逻辑结构1) 基本术语2) 树的遍历树的存储结构树的结构树的逻辑结构1) 基本术语说明树子树、空树、有序树、无序树、森林空树无结点,有序无序看子树交换顺序是不是同一棵点叶子结点、分支结点、根结点、孩子结点、双亲结点、兄弟结点、堂兄弟结点度结点的度、树的度度即分叉数,最大的结点的度即树的度路路径长度、祖先、子孙分支数为路径长度,路径若存在必唯一层结点的层数、树的深度/高度层数从1开始结点的层序编号
2021-03-18 21:33:50 216
原创 数据结构学习2——线性表
数据结构学习(二)线性表1 顺序表2 链表链表与顺序表单链表双向链表1 顺序表pass2 链表链表与顺序表顺序表静态分配内存,内存大小预估 / 空间连续性导致的存储碎片 / 增删数据效率不高单链表表达:头结点、首元结点,空链表与非空链表中结点表达方式的统一遍历:工作指针的后移,与非空的判断表长/查找/插入/删除/构造/析构:在遍历的基础上,计数、查找、删除,注意删除和析构中,先备份再delete循环链表:尾标志指向头结点datanext双向链表插入: 指
2021-03-13 14:20:53 149
原创 数据结构学习1——准备&时间复杂度
数据结构学习(一)准备与线性表1 准备1.1 数据结构1.2 算法1.2.1 编写伪代码1.2.2 算法的效率——时空复杂度 数据结构 + 算法 = 程序1 准备1.1 数据结构1.2 算法1.2.1 编写伪代码1.2.2 算法的效率——时空复杂度...
2021-01-25 15:15:36 191
原创 ROS2_Foxy学习7——构建
ROS2_Foxy学习(七)构建1 前言2 构建工具与构建系统2.1 构建工具2.2 构建系统3 colcon3.1 colcon背景3.2 colcon安装3.3 colcon使用3.4 tips3.5 colcon_cd命令4 ament_cmake 官方文档总是很丰富,关于构建工具,参考A universal build tool和Using colcon to build packages。1 前言 ROS生态中,一个软件是由多个分离的package组成的,运行软件,首先需要构建(buil
2021-01-03 17:10:23 2619
原创 ROS2_Foxy学习6——进阶编程_C++
ROS2_Foxy学习(六)进阶编程_C++1 编写 action1.1 自定义消息文件 action1.2 动作客户端 action client1.3 动作服务端 action server里面的例子参考官方教程,然后附带一些解释和一些推荐的便于理解的文章。1 编写 action新建工作空间,并新建动作功能包。1.1 自定义消息文件 action1、创建:在动作功能包下,创建/action文件夹(与/src同级),并在其中建立.action消息文件。Fibonacci.actionint3
2020-12-30 15:19:02 860 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人