首页 > C++夺命连环问
头像
已经是全速运转了
发布于 2023-10-09 16:41
+ 关注

C++夺命连环问

秋招进行到现在,面了有二三十次了,总结了一些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++编译过程分为哪几步?动态链接和静态链接的区别是?

先记这么多吧,后面再补充~

全部评论

(17) 回帖
加载中...
话题 回帖