- 博客(7)
- 收藏
- 关注
原创 三月c++面经(英特尔、旷世、云从、地平线,具体回答后续补)
三月c++面经(英特尔、旷世、云从、地平线)手撕代码面经八股unique_ptr和shared_ptr有什么区别,分别什么时候使用,请简述他们的实现方案shared_ptr和普通指针在你的工作中,你是怎么考虑使用的C++11有哪些新特性,14和17呢STL有哪些数据结构,底层分别是什么原理红黑数为什么保证了logn的复杂度红黑树为啥是有序的简述红黑树插入一个值的过程deque的具体实现vector能不能放智能指针迭代器失效vector和map举例,关系型和非关系型vector 扩容的原理怎么回收vector
2022-03-26 12:29:20
2098
原创 cyberRT源码浅层解析(二) mainboard
mainboard模块是cyber的程序入口,启动模块,我们可以使用类似roslaunch的方式启动,cyberRT的launch也是封装了mainboard模块。 minaboard模块中一共有五个文件,两个类(module_argument、module_controller)和一个主文件mainboard.cc。 首先先看mainboard.cc #include "cyber/common/global_data.h" #include "cyber/common/log.h" #include "
2022-02-14 20:10:06
2218
原创 cyberRT源码浅层解析(一)总体记录(需要更改,内含错误)
cyberRT源码浅层解析(一) 最近打算做个自主地面与空中机器人的开源workflow,其实也很简单,主要就是写个简单通信中间件,替换掉ros的通信机制,使用protobuf传递消息,支持px4等主流飞控和串口通信至底层控制系统。后面这部分麻烦一点,可参考的比较少,前面的内容,各家大厂应该都已经做烂了, 百度的apollo属实是一个绝佳的参考,但是百度的modules依赖cyberRT太深了,而且cyberRT没有单独做一个项目,不过cyberRT的文档确实不错,写个渣渣文章,梳理源码记录一下。除去cyb
2022-02-11 16:07:54
1074
1
原创 百度apollo中的数据结构(一)unbounded_queue
unbounded_queue顾名思义就是无界队列。 unbounded_queue中定义了一个私有的类node使用链表的方式实现队列,node代码如下: template <typename T> struct Node { T data; std::atomic<uint32_t> ref_count; Node* next = nullptr; Node() { ref_count.store(2); } void release(
2022-02-10 22:29:17
348
原创 2021-10-20 知识题记录(二叉树度、微内核操作系统、程序访问的局部性、通讯协议)
二叉树度为2的结点数为9,计算二叉树的叶子结点数 这题比较简单主要考察就是二叉树的度是啥,二叉树的度即子树的个数,即二叉树中有两个子树的节点的个数为9,先说结论,在任意一棵二叉树中,设叶子结点的个数为n0,度为2的结点数为n2,则n0=n2+1。 以下是证明:最简单的话来说,如果是某一支,子树数量均为1,那么它不会引入叶子节点数量的增加,可以直接减除到最上端的子树为2的节点,即子树为1的节点不会引入叶子节点数量的增加,因此我们可以直接使用一列满子树的二叉树,计算叶子节点进行近似。 数学证明:我们假设.
2021-10-20 23:28:59
190
原创 Eigen3基础简单入门使用
由于本人是在linux下 eigen是目前机器人和实时控制领域最常用(简单)的优化加速库之一。但目前网上的中文教程资源比较少,因此开了一个整理eigen的博客。 入门程序 eigen的安装这里就不再重复了。 以下程序是eigen官方教程的入门程序,入门出现的第一个问题,Eigen/Dense: 没有那个文件或目录。 #include <iostream> #include <Eigen/Dense> using Eigen::MatrixXd; int main(
2021-08-20 09:41:28
4447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人