理想汽车 后端开发-C++ 三面

1. 项目拷打

2. vector vs 普通数组

  • vector:动态扩容、连续内存、自动管理内存、安全、支持迭代器、自带API
  • 普通数组:静态大小、栈/静态分配、手动管理内存、无边界检查
  • 日常开发优先 vector,极致性能场景可用数组

3. vector push_back 均摊 O(1)

  • 采用指数扩容(1.5倍/2倍)
  • 扩容次数极少,所有插入的总拷贝次数为线性级
  • 均摊后每次插入效率为 O(1)

4. vector vs list

  • vector:连续内存、随机访问快、尾插尾删快、CPU 缓存友好
  • list:链表结构、任意位置插入删除快、迭代器不失效、随机访问慢
  • 遍历读多用 vector,频繁中间插入用 list

5. 连续内存对 CPU Cache 好处

  • 空间局部性极佳,相邻数据会一起加载到缓存
  • 缓存命中率大幅提升,减少低速内存访问
  • 速度比缓存不命中快 10~100倍,高并发差距极大

6. inline 函数 vs 宏

  • inline:C++ 关键字、类型安全、调试友好、无副作用、作用域安全
  • 宏:纯文本替换、无类型检查、易出错、调试困难
  • 现代 C++ 一律用 inline,弃用宏

7. 长期职业发展规划

8. 为什么选择自动驾驶方向

9. 虚表、虚指针、多态底层内存布局

  • 含虚函数的对象,头部会多一个虚指针(vptr)
  • 虚指针指向虚表(vtable),虚表是虚函数地址数组
  • 多态的本质:运行时通过虚指针查找虚表调用函数
  • 多继承:对象含多个虚指针;虚继承:共享基类+偏移表

10. 完美转发 + 引用折叠原理

  • 引用折叠:只有 T&& + && 才是右值,其余都是左值
  • forward:还原参数左值/右值属性,实现完美转发

11. 移动构造/赋值被编译器删除的4种情况

  • 显式定义了拷贝构造或拷贝赋值
  • 类中有不可移动的成员变量
  • 基类不可移动
  • 显式定义了析构函数

12. 野指针、悬空指针、悬空引用区别

  • 野指针:未初始化的指针,指向随机地址
  • 悬空指针:指向已释放内存的指针
  • 悬空引用:绑定到已销毁对象的引用
  • 后果:未定义行为、程序崩溃、内存踩踏

13. C++ 无锁编程三大核心难点

  • ABA 问题:CAS 无法识别值被改回,需要版本号解决
  • 指令重排:编译器/CPU 乱序执行,必须用内存序控制
  • 缓存可见性:多核缓存不一致,需 acquire/release 内存屏障

14. 算法题:

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

C++ 常考面试题总结 文章被收录于专栏

本专栏系统梳理C++方向, 大中厂高频高频面试考点 , 内容皆来自真实面试经历,从基础语法、内存管理、STL与设计模式,到操作系统与项目实战,结合真实面试题深度解析,帮助开发者高效查漏补缺,提升技术理解与面试通过率,打造扎实的C++工程能力.

全部评论
点赞 回复 分享
发布于 03-02 09:56 香港

相关推荐

04-04 21:23
门头沟学院 Java
一直没有勇气书写下书写下这段时间的找实习经历一直在焦虑也一直在碰壁,但是不可否认的是在经历各种碰壁之后自己反而成长的最快首先是一开始的中小型公司,聊的都挺好的,也都愿意发offer一个一个首先介绍吧首先万兴科技这是我觉得非常恶心的一个公司(不刻意抹黑,我只说事实),实际上只有一轮技术面试,后面两轮问的比较少,但是他们是Golang需要转语言,星期三业务部的领导面过之后答应可以入职,跟hr联系之后答应是下周三之前给他们答复,到我周二想详细的了解薪资跟培养制度以及转正,当时hr跟我说的是问一下业务部给我订的职级,hr准备实际的发邮箱offer了,一个小时之后hr跟我说他们业务部早就终止流程,连hr都不知道,属实有点恶心人然后的话就是字节海外电商,一路面到了第四轮技术终面,解释一下为什么有四轮,因为第二轮的算法题面试官让我用最优解写出来,面试官也一直跟我将思路,但是当时没get到核心,没写出来,所以又加了一轮面试,技术终面推迟了两次,每次都是面试前一个小时告诉我面试官临时有事,上来让我用IDE写题,一道字符串操作题,一开始用正则表达式几分钟就写好了,后面又让我自己实现,写完没考虑特殊情况,面试官说知道了直接开始面试,上来就是场景题,一百亿条IP加时间戳的日志数据内存限制100M,统计IP出现次数并且实现排序,我的思路是先对文件进行分片,对日志进行hash取模之后相同IP放到同一个分片文件中,再对小文件内进行IP统计和排序,最后的话就是多路归并排序写入到文件中,后来就是问我高考分数,还有一些八股,其中的话https加密握手聊挺长,我只详细说了RSA机制的握手加密面试官可能不是太熟悉一直问我是这样的吗,一直在追问为什么双方要进行随机数交换还有预主密钥跟他详细解释之后面试官也觉得我说的挺好的,自己就是安全专业的所以对这个使用非对称加密实现对称加密秘钥传输比较熟悉,最后应该是排序挂,那边有更好的人选,第二天又被其他部门捞起来了(贴个手撕:带超时的LRU,最小覆盖子串,下一个排序,最大有效括号长度,版本号比较,编辑距离变种)小米hr联系的时候进行了二十多分钟AI相关知识的问答,联系一面,面试体验比较好,面试官比较实在,直接说八股列表找两个问我,手撕环节是让我搭建一个后端服务简单的进行CRUD可以使用AI,面试时长一个多小时,后面的话面试结果不知道,给Hr打电话也不接应该是KPI腾讯直接没有面试,已经找过校园大使HR帮忙投递但是一直没面,身边的人都给面了就我没有,可能是之前提前批自己的处男面面评不太好,鼠鼠也是无奈啊快手简历挂,米哈游简历挂其他像华为阿里实习开的比较晚,因为自己手上有offer,并且自己还能接受,所以就没面了美团是实习之后面的,一直没时间准备,答的还行,但是因为美团面试平台有问题,没手撕只说了思路题目不难leetcode中的课程表那道题自己没详细整理面经,只是记录每次面试中答的不太好的,所以这里就不贴面经了最后的话选择了一家中小厂吧,还是不透露了呜呜呜,公司发的mac还用的不太习惯,但是AI模型随便用,我一周就用了三十刀,mentor是个大牛也是个老顽童贼有趣,实习体验挺好入职一周多,自己随便写的心得大家不要嫌弃
查看10道真题和解析
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务