作者:牛客网 链接:https://zhuanlan.zhihu.com/p/102283481 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 **一面** - 项目相关 - const, static, explict, volatile关键字 - 虚函数实现(RTTI) - 几个智能指针的实现,用法 - C++11新特性 - 模板特化 - new 和 malloc区别 - C++ 内存空间布局 - vector底层实现 - map, hashmap 底层实现 - rebase 和 merge 用法(git) - bss段 - 多线程及同步、多进程通信方式 - 自己使用过的库,以及这个库的作用,实现(lcm, libconfig) - 题目1. 多线程交替打印 - 题目2. 反转链表(递归和非递归方法) **二面** - 项目相关 - placement new - 析构和构造函数与多态 - 如何限制对象只能在堆上创建 - 如何限制对象只能在栈上创建 - 如何让类不能被继承 - 如何控制 vector 的内存分配 - 多线程同步的实现 - 单例模式 - 工厂模式 - 优先队列 - 迭代器的实现 - range for 语句与动态插入删除 - 还有一堆记不清了(聊天式的面试,面试体验及佳) - 题目: 实现 O(1) 的栈的 min()函数(双栈法) **三面(近两个小时)** - 聊项目,超级细 - 一些简单的问题,基本都是上面出现过的,就不赘述了 - 题目1. 给定几十万个ip集合,判断任意一个ip是否属于这个集合 - 题目2.给定一个字符串,判断该字符串是否是环等的(字符串首位相连,如果能找到一个位置,从这个位置顺时针得到的字符串和逆时针得到的字符串相等,即为环等) - 题目3.数学题, 用一个公式表示一个数N的所有因数的和