百度C++岗社招面试(不小心投错了)
时间:2h
纠正一下,这个面的是社招,不小心投错了,我本来是要投实习的
先聊了一个项目,问了一些问题,然后开始技术问题:
1.虚函数的作用
2.虚函数的实现原理,虚函数表
3.为什么要用虚析构函数
4.new/delete比malloc/free好在哪?
5.new/delete的实现原理
6.C++11智能指针
7.列举一下用过的容器,那说一下map和unordered_map的实现原理
8.红黑树的实现原理,AVL树的实现原理
9.哈希解决冲突的方法:我说了三种:开放定址、链地址、添加溢出空间
10.Linux进程通信的方法,常用的有哪些
11.说一下IO复用,以及select、poll、epoll的区别
12.了解“鲸群效应”吗(一脸懵逼,不知道是不是我听错了)
13.讲一下COW机制,以及好处是什么?
14.讲一下LRU的实现原理
15.cache的作用,我主要说了两点:加速和作为缓冲(解决速度不匹配的问题)
16.手撸一个LRU(链表+ordered_map,list不能用stl)
面试时间持续2个多小时,面得我头疼。。。
问题基本回答上来了,但是手撸LRU的时候犯了两个低级错误(明明说思路的时候说用unordered_map,结果写的时候写的map,然后删除操作忘记删ordered_map了),面试官好像不太满意
#百度2020实习生内推##百度##C++工程师##面经#