c++ map 析构函数_小米社招1+2+3面(C/C++)

一面:

  1. C++面向对象的三种特性?(每条详细说说)

  2. C++继承和组合?你在实际项目中是怎么使用的?什么情况下使用继承?什么情况下使用组合?

  3. C++构造函数可以是虚函数吗?为什么?

  4. C++析构函数可以是虚函数吗?为什么要将析构函数设置为虚函数?

  5. C++如何实现多态?虚表指针是什么时候被初始化的?实例化一个对象需要那几个阶段?(三个)

  6. C++偏特化?

  7. 重载、重写、覆盖?

  8. static关键字的作用?(要全面)怎么实现的?

  9. inline和宏定义的区别?inline是如何实现的?宏定义是如何实现的?

  10. 指针和引用的区别?怎么实现的?

  11. malloc和mmap的底层实现?malloc分配的是什么?(底层详细回答)

  12. Linux进程地址空间布局?(这里又问道虚拟内存和分页、页表这些东西)

  13. tcp的握手挥手过程?(详细)tcp为什么要连接?tcp建立连接这里你是怎么理解的?

  14. 半连接队列?全连接队列?

  15. tcp流量控制和拥塞控制?

  16. time_wait状态?为什么是2msl?

  17. 有很多close_wait怎么解决?

  18. 阻塞和非阻塞?同步和异步?

  19. 五种IO模型?

  20. select和epoll有什么区别?epoll的LT和ET模式?

  21. udp为什么是不可靠的?bind和connect对于udp的作用是什么?

  22. NAT是什么?底层实现原理?

  23. 斐波那契数列的非递归写法?(写出代码)

  24. 共享桌面用你熟悉的任意画图工具画项目架构图?(我用的ProcessOn)

  25. 聊项目?

  26. 总共用时两个小时吧,问了很多,有些已经想不起来了。

二面:

  1. 聊项目

  2. struct{    char a;    short b;    int c;    char d;};

    占多少内存?然后又扯到位域?

  3. map和unordered_map的底层实现?目前map支持map[10] = 20这种操作,其底层怎么实现的?和insert有什么区别?

  4. map如何遍历删除所有元素?迭代器失效?

  5. 一个unique_ptr怎么赋值给另一个unique_ptr对象?(std::move)

  6. 这段代码会有什么问题?引用计数如何变化?

    int *sp = new int{10};shared_ptr<int> sp1(sp);shared_ptr<int> sp2(sp);
#include #include  pid_t pid1;pid_t pid2; pid1 = fork();pid2 = fork(); cout << "cur pid:"<",pid1:" << pid1 << 

这段代码打印输出?(写出来:四组)

8.pthread_detach和pthread_join的作用?

9.僵尸进程和孤儿进程?

10.一个进程能不能绑定到一个cpu?系统调用接口是什么?线程呢?

11.对于使用tcp通信的两端,如果client已经退出,此时服务端继续send会出现什么问题?这个当然就要扯到SIGPIPE信号了?

12.一个整数数组,可能是降序或升序,也可能是先升序再降序,求最大值?(几秒后就让我赶紧说思路)

13.写代码:单链表,求中部的N个节点的头节点和尾节点?(需要写测试用例)

三面:

  1.  为什么离职?

  2. 聊项目?

  3. 一致性hash?能不能用到你刚才的项目中?

  4. c语言的函数调用栈底层详细说说?

  5. static变量存放在哪里?什么时候分配的内存?(这里感觉面试官优点不太清楚,我就详细说了说)

  6. k-v数据库如果get有百分之80的数据都不命中有什么好的处理方法?

  7. 项目中遇到缓存穿透问题怎么处理?

  8. map的底层实现?zset的底层实现?为什么zset不使用红黑树作为其底层实现?为什么map不使用跳表作为其底层实现?

  9. 写道题吧:非递归求二叉树的高度?(需要写测试用例)

23ebed6af42aaacd499630cb60e0719a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值