飞道的博客

又面试了,拿了两个年包63+的offer

255人阅读  评论(0)

主要面试了四家,车载系统中间件方向,关于c++的面试内容大概如下:

第一家

 两个面试官,一轮面试通过,项目经验比较匹配,问的比较详细,c++稍微问了几个问题:

1. 多重继承如何避免二义性

2. unorder_map 底层数据结构是?如何避免冲突

3. template的注意事项,必须在.h实现定义,为什么?

4. 如何查看可执行文件的链接库, ldd还有 readif?


 

第二家

一轮面试fail,感觉面试官偏年轻自傲,纠结于一些技术细节,项目经验基本不懂:

1. vector如何释放多余内存,swap

2. shared_ptr是否阅读过源码,是否线程安全

3. order_map与unorder_map底层是什么?红黑树原理?为什么要左旋右旋

4. 多态的实现,重写与重载,虚函数表是跟着类还是实例?

5. mutex的一般用法,多线程编程时需要引用哪些库

6. linux 的内存模型

7. lambda表达式如何判断this是否存在

算法题

链表反转


 

第三家

二轮技术面+hr面,技术与项目经验的考察相当全面系统,不会纠结某个细节,互有沟通学习:

1. unique_lock与lock_guard的区别

2. 线程互斥的多种实现方法,原理,区别,condition变量设计

3. shared_ptr的实现原理,是否线程安全?make_shared与直接用shared_ptr初始化的区别

4. weak_ptr的使用场景及原理,unique_ptr的实现原理

5. 如何禁用拷贝构造函数? = delete

6. 死锁时如何检测

7. std::move的作用,使用场景?

8. 设计模式:单例?策略模式?工厂模式?发布订阅模式?是否用template实现过设计模式

9. 使用template的场景,如何获取类类型(萃取),在.c定义template会报什么错(redefine)

10. lambda表达式的几种捕获方法,生命周期

11. 发布订阅模式(dds?)的生命周期

算法题:链表是否有环,环的长度如何计算;c++实现version大小比较

第四家

三轮技术面,还在等通知

mqtt/restful/dds等通信机制的区别与选取标准

(待补充)

算法题:

反转链表,寻找数组中大于一半长度的值


转载:https://blog.csdn.net/qt_dog/article/details/128555074
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场