LZ投递的是百度提前批,7月底投递,8月2日一面到8月16日收到意向书,历时共两个礼拜。现将面经分享给大家并作以复盘,一些有意思的问题大家可以在评论区一起讨论下,共同进步。
一面 50min 8月2日
两个浮点数怎么判断相等、浮点数在计算机中是如何表示的
全局变量在什么阶段初始化
编译器编译C++程序都经历哪些阶段,每个阶段做了什么事
static关键字的作用
C++中new/delete和C语言中的malloc/free有哪些区别
函数重载的原理
extern “C” 的作用
C++多态原理
虚函数表什么时候生成,虚表指针什么时候赋值
派生类有两个基类,每个基类都有虚函数,派生类对象内存中有几个虚表指针
基类析构函数为什么一般声明为虚函数
dynamic_cast作用
vector底层实现、扩容机制、扩容后元素迭代器是否失效
deque底层实现
STL中如何区分普通指针和迭代器
C++11智能指针unique_ptr、shared_ptr的实现原理
make_shared生成shared_ptr的优点和缺点
C++中的右值概念、使用右值的好处有哪些
了解完美转发么
万能引用
讲讲inline函数以及和宏定义的区别
算法
C++11实现单例模式
归并排序
之字形打印二叉树【LC103】
二面 50min 8月6日
最有挑战的一个项目
讲讲Reactor模式
线程同步中有哪些锁可以使用
条件变量为什么要和互斥锁搭配使用
vector如何通过迭代器删除一个元素
STL中有哪些方法可以删除元素【容器自带的erase,或std::remove方法】
给了一些类的例子,sizeof求大小
算法:
给一个数据成员为char*和int的类,实现类的移动构造函数
返回一个字符串的最长上升子序列【LC300,面试时要求输出子序列结果】
岛屿数量【LC200】
三面 20min 8月11日
三面主要是问些简历上的东西以及为什么想来百度工作等开放性问题,技术问题问的不多。
类的析构函数为什么一般要声明为虚函数
子类析构函数是如何调用基类析构函数的
实习、比赛内容
职业规划
反问环节
四面 15min 8月13日
四面看起来应该是部门是个大佬,由于是最后一面,所以没问技术,问了些开放性的内容:
实习内容介绍
你认为实习部门的业务存在哪些痛点
职场规划
你觉得如果来我们部门,你面临的最大困难是什么
反问环节
测评+OC+意向 8月16日
复盘总结
- 百度前两面技术考察的比较多的,基本考察的是C++技术功底以及Coding能力,这个可能因部门而异,不同部门要求不一样,但肯定会有算法题,所以大家还是要多刷题保持手感,前两面通过,后面的就比较轻松了,大多会问一些个人经历和职业规划之类的开放性问题。
- 大家对于自己技术栈的一些技术专有名词一定要了解,免得面试时问了不知道就不太好,像一面面试官问的万能引用,我是第一次听说这个词,就说不了解,后来查了下才知道是泛型编程中的T&&参数,可能面试官想进一步追问引用折叠之类的知识点,但由于LZ第一次听说万能引用,没答上就很遗憾。
讨论
- 技术栈是C++的小伙伴面试过程中可能会发现智能指针考频较多,shared_ptr的构建方法有两种,其中make_shared构建方式的优点和缺点,这个问题是LZ面试中不太确定的问题,这点大家可以讨论下。
- 有关面试流程什么的也可以提问,LZ知道的一定知无不言。
全部评论
(11) 回帖