一面
- 自我介绍
- 开始问项目
介绍一下这个项目吧,然后问了项目中遇到什么苦难,又问了一些细节的方面。 - 说一下内容对齐
我:不太清楚... - 了解C++stl吗?然后问了map的底层
- 申请内存有哪些方法?
- 手撕代码,大致就是统计两个字符串中的相同字母和不同字母数量
写完后对我的代码规范提了点意见,if后面写上大括号之类的,然后问我还有哪些不规范的地方,我:变量命名混乱... - vector的底层怎么实现的?
我:动态数组,他又追问,具体是怎么做的?我:... - 指针和引用有什么区别?
- 之后就是问我有什么要问的没就结束了
二面
- 同样自我介绍,项目相关
- 看到我做过数模,问我具体细节
- 对面向对象的理解?
我:不同于C,面向对象三大特性,继承、封装、多态,然后他追问这些特性怎么体现的? - 重载和重写的区别?
- 手撕代码,输入一个表示气温的数组,找到每个数到它后面大于这个数的第一个数的距离,如[2,5,6,3,4,8],输出[1,1,3,1,1,0]
我:没想到更好的,只能暴力法,最后他给结果截了屏 - 了解过多线程吗?
我:不了解... - 知道C++的锁吗?
我:不清楚... - 好的,你有什么要问的吗?
...
结束
总结
面向对象没问我太深入,不然我可能啥都答不上来,但是二面还是稀里糊涂地过了。面试前还是要好好复习一下基本知识,笔试之后就少刷点算法题,毕竟手撕相对简单一点,还是要慢慢提高自身能力。