百度-C++面经
秋招经历以及更多分享,请点击--》秋招总结 & 面经分享总贴
笔试(10.12) a2.1
一面(10.25) 32min
- 拷贝构造函数什么时候被调用
- 拷贝构造函数是传值还是什么
- 为什么要传引用—》防止递归调用
- 抽象类和抽象方法
- 继承和多态的区别
- 常用容器
- List是双向还是单向的
- Vector动态扩容的时机
- 怎么减少扩容的次数
- 怎么实现项目中的简单工厂模式
- 单例模式
- 事务特性
- 隔离级别及未解决的问题
- Serializable带来了别的什么问题
- 实际应用中使用哪个级别—》read committed
- 手撕:每个数据有color和val两种属性,先按color的红黄蓝排序,再按val从小到大排序,O1空间复杂度--》定义新的compare函数,再in-place排序
二面(10.25) 50min
- 多态的实现原理
- 怎么知道绑定对象的具体类型
- 指针和引用的区别
- 怎么判断两个单向链表相交
- 时间复杂度
- 怎么判断是否有环,O1复杂度解法
- 不能排除单向链表是否有环,该怎么判断是否相交,不能用哈希表
- 手撕:实现Memcpy
- Const关键字的用法,const指针的用法
- src和dst内存空间有重叠怎么办
- 单例模式的应用场景
- 手撕:先序遍历,非递归
- 线程之间的同步怎么做
- 怎么实现压测工具,压力均匀(单位时间建立的连接数相同)、可控,从本地读取文件,到发送给服务器,再到接收响应,判断是否成功--》主线程先读完所有要发送的数据,然后从1到n,轮转分发给工作线程自己的请求队列,工作线程就不断的从队列中取出编号,再找到对应的数据发送
三面(10.25) 31min
- 基于升序链表的定时器容器,解释一下
#百度##C++工程师##校招##面经#二面和三面问了很多实习的问题,这里就没放出来了。百度面试的体验也很不错,流程也挺快,尤其是二面,一直在引导。手撕的也比较注重基础。三面算是业务主管的综合面。