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. priority_queue优先级队列的底层数据结构是什么?操作的时间复杂度是什么?
29. 红黑树与AVL树有什么区别?与堆有什么区别?与跳表有什么区别?
30. 如果让你用一维数组模拟一个大根堆,你怎么实现?
问题答案已经整理到专栏中了,关注我分享更多知识。
全部评论

相关推荐

1. 移动构造函数和移动赋值运算符是什么?作用是什么?2. RAII(资源获取即初始化)是什么?如何实现?3. 模板是什么?类型参数和非类型参数有什么区别?4. 函数模板和类模板是什么?使用场景是什么?5. 异常处理机制怎样?如何使用try、catch和throw?6. Lambda表达式是什么?在C++11中作用是什么?7. std::function是什么?用途是什么?8. std::bind是什么?如何与Lambda结合使用?9. std::thread如何使用?如何管理线程的生命周期?10. 条件变量是什么?如何用于线程间的同步?11. std::unique_ptr和std::shared_ptr有什么区别?12. std::weak_ptr有什么作用?如何避免循环引用?13. std::array和C-style数组有什么区别?14. std::string和C-style字符串有什么区别?15. const_cast、static_cast、dynamic_cast和reinterpret_cast有什么区别?16. 多重继承会带来什么问题?如何解决?17. 虚继承是什么?解决了什么问题?18. 友元函数和友元类是什么?作用是什么?19. 命名空间是什么?作用是什么?20. 类型萃取(Type Traits)是什么?用途是什么?21. SFINAE(Substitution Failure Is Not An Error)是什么?22. constexpr是什么?作用是什么?23. std::variant是什么?与union有什么区别?24. std::optional是什么?使用场景是什么?25. std::deque和std::vector有什么区别?26. std::list和std::forward_list有什么区别?27. std::map和std::unordered_map的时间复杂度分别是多少?28. std::set和std::unordered_set的时间复杂度分别是多少?29. std::function和函数指针有什么区别?30. 智能指针如何避免内存泄漏?如何使用?问题答案已经整理到专栏中了,关注我分享更多知识。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
查看30道真题和解析
点赞 评论 收藏
分享
7 35 评论
分享
牛客网
牛客企业服务