百度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++工程师##面经#
全部评论
是惊群效应
1 回复 分享
发布于 2020-04-25 00:42

相关推荐

一笑而过2222:啊!拷贝构造函数和赋值操作符的区别 拷贝构造函数用于创建一个新对象作为现有对象的副本,而赋值操作符用于将一个已存在对象的值赋给另一个已存在的对象。 啊!析构函数能不能被重载 析构函数不能被重载,每个类只能有一个析构函数。 啊!构造函数能不能被重载 构造函数可以被重载,允许使用相同的构造函数名但参数列表不同来创建多个构造函数。 啊!虚函数和一般函数的区别 虚函数用于实现多态,允许通过基类指针或引用调用派生类的函数;而一般函数不具备这种动态绑定的能力。 啊!引用和指针的区别 引用必须在声明时初始化且不能更改指向的对象,而指针可以在任何时候指向不同的对象,并且可以为 NULL。 啊!C++内存分区 C++内存分为四个主要区域:栈区、堆区、全局/静态存储区和代码区。 啊!堆区申请的内存没有被释放 如果堆区申请的内存没有被释放,会导致内存泄漏,程序运行时间越长,占用的内存越多,最终可能导致系统资源耗尽。 啊!介绍几种常见的 STL 常见的 STL(标准模板库)组件包括:vector(动态数组)、list(双向链表)、map(键值对集合)、set(唯一元素集合)、queue(队列)、stack(栈)等。
点赞 评论 收藏
分享
点赞 24 评论
分享
牛客网
牛客企业服务