page contents

面经||【滴滴】C++岗-专场凉经

attachments-2022-03-687XCXCM6233dab4029b4.png

一面:

  1. C++的多态怎么实现的?
  2. 虚表是类的还是对象的?
  3. 有用过智能指针么?
  4. unique_ptr解决什么问题?怎么实现? shared_ptr呢解决什么问题,又会有什么问题(循环引用 资源无法释放),如何解决;随即引出weak_ptr,如何解决以上问题,weak_ptr怎么实现的
  5. C++有很多容器,介绍几个,map和unordered_map的底层数据结构。以及各自优缺点?你平时使用过吗,你会如何选择
  6. 介绍你的项目。你负责哪一部分?,代码量?
  7. socket编程的流程,哪些函数会阻塞(send,recv,accept,connect这些,listen和bind不会)
  8. 数据传输用什么协议(tcp,udp)?数据怎么组织的(逐层封装,应用层数据->tcp报头->ip报头->以太网帧 发送过去)?为什么不考虑一些通用的协议?(不会)
  9. TCP挥手的过程?
  10. 服务器会有很多tcp连接,如何减少Timewait的数量?等待的目的是什么( 为了保证客户端发送的最后一个ACK报文段能够到达服务器)?什么时候一定会到达,这样就可以不等待2msl 直接进入closed转态。答案:纯内网之间的通信没必要等待,纯内网不用走握手的流程,外网也有一些其它的方法
  11. 代码题:合并两个有序链表 (赛码网, 头文件 链表的定义 int main() 输入输出全都自己写)

二面:

  1. 为什么转行(机械专业) 计算机的了解吗 接受一下项目
  2. 什么是死锁,出现死锁,怎么定位、解决、发现?(不知道如何定位和解决)
  3. 进程和线程的区别?
  4. 进程间怎么通信?(管道,消息队列,信号量,信号,共享内存,socket)
  5. 几种通信方式哪种效率最高?共享内存(不需要建立额外的数据结构)共享内存会有什么问题(读写冲突,需要加锁)?如果一个进程挂了,它使用共享内存的一段区域,有影响吗
  6. 有一亿个整数,要拿前一百个大数,如何让效率最高(时间)?(维护Top100的最大堆 时间复杂度nlogm n为1亿 m为100)
  7. 介绍C++11的智能指针,又讲了一遍?智能指针有什么缺点?
  8. 指针函数了解吗,回调里释放某个对象,Callkback资源管理怎么解决?
  9. 系统设计,找出经某个坐标下一公里内所有共享单车的位置。涉及数据结构,判断哪些区域?(共享单车的坐标建立空间索引的方法,以该点坐标去查找)

二面场景题较多 好几个都没回答上来 最后挂掉了

以上就是本次分享内容,更多大厂C++工程师面试经验持续关注六星社区

想要高效学习,指路微信公众号——【python编程学习圈】每日分享学习干货,关注即可免费领取整套Python零基础到入门资料及学习教程,走过路过,千万不要错过!!快行动起来!!

attachments-2022-05-ZwUUz0Co628f2e3079c7b.jpeg

0 条评论

请先 登录 后评论
小柒
小柒

1470 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章