2022.8.12
1. C++语言考察
-
引用和指针有什么区别,指针作为函数参数注意问题,引⽤作为函数参数以及返回值的好处?
-
函数的参数和返回值的传递方式有哪些?他们的区别是什么?
-
什么是虚函数?简述 C++虚函数作用及底层实现原理?
-
构造函数为什么不能定义为虚函数? ⽽析构函数⼀般写成虚函数的原因 ?
-
如何定义一个只能在堆(栈)上生成对象的类,为什么?
-
malloc 和 new 有什么区别?
-
说一说 c++中四种 cast 转换?为什么不使用 C 的强制转换?
-
关键字 define 宏定义和 const 的作用和区别?
-
线程间同步的方式有那些,项目中是怎么实现的?
-
智能指针实现原理和多少种指针模板类,他们作用和区别是什么? shared_ptr 引用成环是如何的?怎么解决?
-
指出下面这段代码可以改进的地方
void print_strings(const std::vector<std::string>& strings) { for (int i = 0; i < strings.size(); i++) { string str = strings[i]; printf("strings[%d] = %s\n", i, str.c_str()); } }
-
编程
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [ − 2 31 , 2 31 − 1 ] [−2^{31},2^{31} − 1] [−231,231−1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。
- 示例 1: 输入: x = 123 输出: 321
- 示例 2: 输入: x = -123 输出: -321
- 示例 3:输入: x =120 输出: 21
- 示例 4: 输入: x = 0 输出: 0
提示: − 2 31 < = x < = 2 31 − 1 -2^{31} <= x <= 2^{31} - 1 −231<=x<=231−1
2. 决策规划算法考察
- 说明轨迹规划和路径规划作用和区别?规划过程如何考虑障碍物?
- PNC 在自动驾驶中的作用,说明规划与控制的区别。
- 什么是运动控制?控制具体控制了什么,输入输出是什么?如何实现的?表现到车辆状态上又是怎样的?
- 什么是 PID、 LQR、 MPC 算法?用途是什么?分别解决了什么问题?
- 轨迹规划所使用的坐标系有哪些?它们的有什么不同?分别用于什么场景?
- 传统 PID、 LQR、 MPC 各自的优缺点有哪些?对于缺点有哪些解决方法?
- pid 控制算法的控制原理? pid 控制算法如何解决误差和超调问题?
- PID 超调如何解决,积分饱和如何解决? LQR 如何建模,状态量有哪些,控制量有哪些?
- 说明 Lattice 和 Em Planner 的基本思路。
- 规划不平滑造成什么影响
- 介绍下行为预测的难点?如何解决?
- 讲下你参加的项目,负责的技术工作,遇到的问题并如何解决的?