深信服软开一面9.19
无自我介绍、反问-45min
1、多态
2、虚函数,虚析构,虚构造,虚表如何定位3、深浅拷贝
3、虚析构抛出异常
4、手撕:统计创建类A的个数
5、A a= new A; a = a;发生什么
6、static修饰变量,函数,类
7、stl常用容器
8、list、vector区别
9、vector扩容,缺点
10、手撕:map<int, string> 删除key为5的倍数的元素
11、new,delect,malloc
12、delect[],及删除普通new的对象会怎样
13、常见数据结构,栈堆区别,平衡二叉树及怎么保证平衡
14、手撕:删除链表重复元素
15、手撕:数组存1-n,其中缺一个数且有个数出现两次
a:排序,遍历,q:排序复杂度,选择策略
优化,a:开辟新数组,遍历
优化时间O,空间1,a:值和下标交换
16、手撕:合并两个数组,小数放一个,大数放一个
a: 开辟大数组存放,再分别放
Q:不开额外内存优化
17、手撕:ip地址去重,怎么排序
输入:1.1.1.1、 3.3.3.3、 2.2.2.2-4.4.4.4、 4.4.4.5、 5.5.5.5
输出:1.1.1.1、 2.2.2.2-4.4.4.4、 4.4.4.5、 5.5.5.5