腾讯CPP后台一面面经
下面是大概的知识点,问了看什么书,平时怎么学习的,实习就不说了。
1、epoll服务器接口函数调用过程
相应接口:socket, bind, listen, epoll_create, epoll_ctrl, epoll_wait, accept
2、epoll ET LT的使用场景
ET LT的区别
3、什么时候产生EPOLLOUT事件,什么时候产生EPOLLINT事件
accept建立连接时客户端触发EPOLLOUT事件,服务端有新连接,可读,断开时EPOLLINT事件
4、UDP可以connect吗
可以
5、TCP状态机
客户端:SYN_SENT -> ESTABLISHED -> FIN_WAIT_1 -> FIN_WAIT_2 -> TIME_WAIT。
服务端:LISTEN -> SYN_RCVD -> ESTABLISHED -> CLOSE_WAIT -> LAST_ACK -> CLOSED。
6、TIME_WAITE出现在哪一端,作用。
主动断开那一端,作用:自己查一下吧
7、RST什么时候会出现
建立连接的SYN到达某端口,但是该端口上没有正在 监听的服务。
TCP收到了一个根本不存在的连接上的分节。
请求超时。 使用setsockopt的SO_RCVTIMEO选项设置recv的超时时间。接收数据超时时,会发送RST包。
8、进程间通信
管道、共享内存、消息队列、套接字、信号、信号量
9、fork的返回值,什么时候是子进程,什么时候是父进程
子:0 父:父pid
10、子进程怎么才能不继承父进程的句柄
exec函数族
11、STL六大部件
容器、算法、仿函数、迭代器、适配器、分配器
12、各个容器的使用场景
不一 一说了
13、vector的容量很大,怎么减小
swap( )临时vector对象
14、deque的底层实现
STL源码剖析
15、红黑树的特点
set,map的底层实现
每个节点或者是黑色,或者是红色
根节点为黑色
叶子节点(空节点)全为黑
如果一个节点为红色,它的子必须为黑
一个节点到最后的叶子节点每个路径中,黑节点数目相同
左子树和右子树高度差不超过2倍
查找时间复杂度logn
16、智能指针解决什么问题。怎么实现的。说说其构造函数,拷贝构造函数的实现
内在泄漏,维护一个指针和计数器
17、快排空间、时间复杂度
O(1)(递归logn~n),O(nlogn)
18、设计模式
常见的看一下
19、linux怎么查看内存占用、CPU占用、IO占用
free,top,iostat,vmstat,sar
20、前++,后++操作符重载,怎么区分
后++有参数
21、四种强制类型转换,特点
static_cast、const_cast、reinterpret_cast、dynamic_cast
22、const修饰符,成员变量,成员函数,静态对象
23、纯虚函数可以有函数体吗
可以,不可实例化
24、双向迭代器重载了哪些操作运算符
没有+,-,+=,-=
25、STL内存分配策略
STL源码剖析
#腾讯##面经##C++工程师##内推##秋招#