c++面试 linux

1.C++ 多态

2.

* c++ map 时间复杂度,如何实现

            * map是红黑树实现的,查询复杂度为O(logn)

            * unordered_map是哈希表实现的,查询复杂度是O(1)

        * vector 

            * 如何实现

            * 如果插入n个数时间复杂度

            * 4G内存能存多少vector

3.

  1. 虚函数的实现原理

    扫描二维码关注公众号,回复: 3330959 查看本文章
  2. 析构函数和虚函数的关系

  3. 结构体和类的区别

  4. c++内存管理机制

  5. Linux多进程之间通信方式

4.malloc和new的区别

5.进程,线程

6.linux相关:查看本机的状态的指令(内存,cpu,磁盘之类的),pageFault,进程空间地址和物理机物理地址映射相关

7.

  1. static用法

    - 修饰局部变量、全局变量、类成员、类成员函数

    - 修饰局部变量的话只有在函数第一次调用的时候会对其进行初始化

    - 修饰全局变量的话只能在本文件使用,别的文件无法访问

    - 修饰类成员的话该类的所有对象共有该静态成员

    - 修饰类成员函数的话该函数只能访问静态成员,无法调用其他非静态成员函数也无法修改其他非静态成员,因为静态成员函数没有this指针

  2. static修饰的变量放在内存的哪个区(全局变量区)

  3. 还有别的什么区(堆区、栈区、程序代码区,文字常量区漏了没答上)

  4. 一个空类,什么都没有,sizeof这个空类的对象,大小是多少?(1字节)

  5. 为什么是1字节(只记得有这么一个规定,具体为啥不知道)

  6. new和malloc区别(老生常谈了)

  7. 构造函数可以为虚函数吗?为什么(不行,因为虚函数调用需要查虚函数表,而虚函数表是在对象调用构造函数创建之后才会有)

  8. 多线程编程中各个线程共享哪些资源(应该是堆区和全局变量区,栈区不共享,答错了)

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.

红黑树优点,应用;
hash研究一下;
虚函数实现;
析构函数声明为虚函数的作用;
STL底层实现(list,vector,map,unorder_map),vector内存分配;
拷贝复制(深拷贝浅拷贝);
static 线程安全;
31.讲一下new运算符的原理(底层使用了operator new(),最终调用了malloc),new运算符重载用过吗,怎么写重载函数,重载的定义

memset函数的作用,有哪些参数
32.
  • C++/C的内存分配,栈和堆的区别,为什么栈要快
  • C++和C的区别
33.函数指针
34.
1、问了stl里面set和map怎么实现的,顺势说了红黑树的性质还有左右旋转 
2、mallca/free与new/delete的区别 
3、宏定义和枚举的区别(没答上来,说了下宏定义) 
4、c  的多态,说了下虚函数  
5、构造函数为啥不能定义为虚函数 
6、析构函数为啥一般定义为虚函数  
35.vector和list的区别的,应用,越详细越好
 

猜你喜欢

转载自www.cnblogs.com/ymjyqsx/p/9696967.html
今日推荐