1.C++ 多态
2.
* c++ map 时间复杂度,如何实现
* map是红黑树实现的,查询复杂度为O(logn)
* unordered_map是哈希表实现的,查询复杂度是O(1)
* vector
* 如何实现
* 如果插入n个数时间复杂度
* 4G内存能存多少vector
3.
-
虚函数的实现原理
扫描二维码关注公众号,回复: 3330959 查看本文章 -
析构函数和虚函数的关系
-
结构体和类的区别
-
c++内存管理机制
-
Linux多进程之间通信方式
4.malloc和new的区别
5.进程,线程
6.linux相关:查看本机的状态的指令(内存,cpu,磁盘之类的),pageFault,进程空间地址和物理机物理地址映射相关
7.
-
static用法
- 修饰局部变量、全局变量、类成员、类成员函数
- 修饰局部变量的话只有在函数第一次调用的时候会对其进行初始化
- 修饰全局变量的话只能在本文件使用,别的文件无法访问
- 修饰类成员的话该类的所有对象共有该静态成员
- 修饰类成员函数的话该函数只能访问静态成员,无法调用其他非静态成员函数也无法修改其他非静态成员,因为静态成员函数没有this指针
-
static修饰的变量放在内存的哪个区(全局变量区)
-
还有别的什么区(堆区、栈区、程序代码区,文字常量区漏了没答上)
-
一个空类,什么都没有,sizeof这个空类的对象,大小是多少?(1字节)
-
为什么是1字节(只记得有这么一个规定,具体为啥不知道)
-
new和malloc区别(老生常谈了)
-
构造函数可以为虚函数吗?为什么(不行,因为虚函数调用需要查虚函数表,而虚函数表是在对象调用构造函数创建之后才会有)
-
多线程编程中各个线程共享哪些资源(应该是堆区和全局变量区,栈区不共享,答错了)
8.STL知道吧?讲讲都有哪些,底层都是怎么实现的。
vector, list,map, unordered_map。
9.说一下指针和引用的区别
10.C++11有什么新特性
11.虚函数和纯虚函数有什么区别
12.
你要在n个城市工作k周,你可以在周末的时候选择换城市,也可以不换,给你城市之间的邻接矩阵D(n*n维),D(i,j)代表第i,j个城市间有航班,每个城市每周的休假天数X(n,k),X(i,j)代表第i个城市第j周的放假天数,问题是你需要做一个规划,使得一年内你的休假天数最大。
解略,明显是dp问题,推出公式,写出代码。
13.常用的linux命令?
14.对caffe源码熟悉程度。(我扯了扯源码的底层设计模式,数据流怎么流的,如何添加新层、cuda代码的细节)
15.说说堆和栈的区别
16.c++STL中vector的插入和删除函数是啥
17.C++的STL常见的数据结构
map和unordered_map的区别
vector支持的操作,push_back操作的时间复杂度
18. cpp 内部重载机制的实现;函数指针;什么情况会导致野指针和段错误
19.linux查看进程占用cpu
linux根目录下每个目录的作用
20.c++虚函数 内存管理 智能指针
21.tac命令
22.64匹马,决出前4匹最快的
23.c++多态(常规问题)
虚继承(常规问题)
24.析构函数能否为虚,
为什么析构要虚函数,
25.static作用,static能否为虚函数
26.多态,const,static
27.如何实现禁止继承
28.static和const,vector如何扩容,vector如何减小capacity,哈希表原理,多态的实现
29.long和long long的区别,文件如何获取大小,sizeof(\0)和strlen(\0)是多少
30.
memset函数的作用,有哪些参数
- C++/C的内存分配,栈和堆的区别,为什么栈要快
- C++和C的区别