秋招进行到现在,面了有二三十次了,总结了一些C++的高频面试问题,和一些我认为非常能考察理解深度的问题,供参考。1. C++11有什么新特性?2. 函数有哪些常见的传参方式,有何区别?3. 指针和引用有什么区别?4. 指针常量和常量指针有何区别?5. 常见的内存泄漏发生场景有哪些?6. 常见的内存泄漏检测工具?7. 虚拟内存和物理内存的区别?8. 内存空间有哪些区域?分别是做什么的?9. 段页式内存管理有何优点?10. 说一下智能指针?11. 内联函数是什么?和宏有何区别?它有什么优缺点? 什么情况不能内联?12. 说一下多态的底层原理?为什么要有多态,直接静态重写不好吗?13. C++空类的大小是多少?如果空类内含有虚函数,类的大小又是多少?14. 讲讲内存对齐?15. 虚函数可以是模板函数吗?16. 虚函数可以内联吗? 17. 32位Linux系统的寻址空间是多大?进程能申请的内存有这么大吗?18. Linux系统中进程默认栈空间是多大?如何修改?19. Linux系统中调试崩溃问题的流程是?20. 栈溢出一般是由哪些原因导致?21. Static关键字有什么用?static变量修饰全局、函数内和类内变量时,分别在什么时候进行初始化?22. 初始化列表有什么好处?哪些成员变量必须通过初始化列表初始化?23. 什么是右值引用?说一下什么是移动语义及使用场景?24. Malloc/free和new/delete有什么区别?25. Vector和List有什么区别?讲一下vector动态扩展的原理?26. Vector动态扩展时,编译器为什么不先判断一下原有空间后面的内存是否空闲,如果空闲,直接在后面的内存空间继续分配空间?(从内存池角度回答)27. Unordered_map和map,unordered_set和set,分别有什么区别,它们的底层数据结构是什么?28. prioriry_queue优先级队列的底层数据结构是什么?操作的时间复杂度是什么?29. 红黑树与AVL树有什么区别?与堆有什么区别?与跳表有什么区别?30. 如果让你用一维数组模拟一个大根堆,你怎么实现?31. Sort()函数的排序策略是什么?用到了哪些排序方法?(快速排序、插入排序、堆排序)32. Sort里面什么情况下会调用插入排序?它时间复杂度是N²,为什么要用它?33. Sort里面什么情况下会调用堆排?为什么不能无脑用快排? 34. 哈希冲突了怎么办?35. 如果用链表把冲突的节点链起来,因为这些节点的哈希值都一样,那如何区分这些节点?36. 哈希表负载因子过大时要进行Rehash,那哈希函数要变吗?37. 如果有几十亿个id(字符串),怎么快速判断某个id是否存在?38. 如果要在一亿个数字里找出最大/小的K个,怎么做?39. 类A提供了拷贝构造函数和等号赋值运算符,假设b是A的一个对象,代码:A  a=b;会调用拷贝构造函数还是等号赋值函数?40. C++编译过程分为哪几步?动态链接和静态链接的区别是?先记这么多吧,后面再补充~
点赞 128
评论 17
全部评论

相关推荐

给我面到流鼻血,真丢人,乞求算法题也没有
投递阿里国际数字商业集团等公司10个岗位 >
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务