滴滴C++(一、二、三面,连着三面)

一面:(45min)
1、自我介绍
2、项目难点
3、epoll原理
4、Reactor和Proactor区别
3、Reactor在代码层面怎么实现的
4、主线程代码写下
5、子线程代码写一下
      项目代码只写出了大框,面试官针对我写的代码提出很多问题,讨论很久
二面:(40min)
1、自我介绍
2、epoll和select区别
3、select有哪些优点(文件描述符少且比较活跃时用它、跨平台性)
4、select所检测的文件描述符最大限制为1024可以改变吗(系统参数可改)
5、raii机制是什么,解决了什么问题
6、tcp、udp区别
7、tcp拥塞控制四种算法
8、如果现在网络已经出现拥堵了,窗口怎么样变化(回答的会减半)
9、GET和POST作用,还知道什么请求方法都说说,说了HEAD和PATCH
10、多态介绍下
11、定义一个基类A,里面有两个成员函数m和n(均为虚函数),定义派生类B,里面两个成员函数n和p(均为虚函数)
        两个类定义对象后的的内存模型怎么样
12、怎么获得一个类中成员的偏移(没答出来)
13、分别介绍下线程和进程
14、多线程和多进程区别
15、多线程怎么保护的共享资源
        说了互斥锁,追问,如果使用互斥锁,当一个线程获得锁,会阻塞其他活跃线程,影响并发量怎么解决,好像是惊群效应,
        回答:CAS操作,取消互斥锁。或者给每个线程单独搞一个队列
        追问:CAS原理、为什么CAS可以保证原子性
16、8个线程全部去处理高码任务,低码任务得不到处理,怎么设置多个线程对任务的处理模式,在Reactor模式下用哪个系统调用来设置?(不清楚)
17、进程间通信方式都有什么?
18、说说信号量原理,解决什么问题?
19、手写代码:快排、最好最坏时间复杂度、如何优化
三面:(45min)
1、自我介绍
2、这次是epoll、poll、select区别(滴滴是真爱问这个问题)
3、select有哪应用场景,为什么文件描述符少的时候适合用select
      面试官说是因为epoll是用回调方式处理代码,存在一定的系统开销
4、select为什么最大限制是1024、如果要修改用到哪个系统参数
      (进程默认设置的文件描述符的上限是1024、修改FD_SETSIZE)
5、介绍定时器实现原理
6、介绍小根堆原理,为什么使用小根堆,还有什么其他数据结构可以使用
7、介绍智能指针,分别说说auto_ptr、unique_ptr、shared_ptr、weak_ptr
8、unique_ptr解决了auto_ptr哪些问题
9、什么是循环引用计数,weak_ptr怎么解决的
10、vector底层怎么实现的
11、vector什么时候会扩容?怎么扩容的?每次扩容的大小是多少?
       回答:capacity==size时,扩容大小是1.5~2,追问:什么情况下是1.5,什么情况下是2,
       回答:应该是和编辑器 追问:具体情况是怎样的
       追问:除了capcity==size会扩容,还有什么时候会扩容
       回答:迭代器失效的时候
       追问:那要是想缩容呢?
       回答:resize。面试官表示不对,让自己回去查查
12、代码题:给你一颗完全二叉树,如何找到最后一层最右边的节点。(说思路即可,没让写)
#滴滴校招##滴滴##面试题目#
全部评论
楼主,请问面完有什么消息吗,面试房间还存在不,我今天也是三连面🙂
1 回复
分享
发布于 2021-10-15 20:45
reverse缩容吧🤣
点赞 回复
分享
发布于 2021-10-15 23:01
联易融
校招火热招聘中
官网直投
兄弟有消息了吗
点赞 回复
分享
发布于 2021-10-25 11:27

相关推荐

点赞 17 评论
分享
牛客网
牛客企业服务