①自动生成的函数有哪些
共有六个 构造 析构 拷贝构造 赋值操作符重载 取地址操作符重载 const修饰的取地址操作符重载
②虚函数和纯虚函数
纯虚函数:virtual int func()=0;
虚函数和纯虚函数可以实现多态,区别是含有纯虚函数的类不能实例化对象
抽象类:含有纯虚函数的类,抽象类无法实例化对象抽象类的子类必须重写纯虚函数,否则子类也是抽象类
③海量数据存储方式:B树 B+树
④进程通信方式
a.共享存储: 基于数据结构共享(如一个大小为10的数组) 基于存储区共享(高级)
b.消息传递: 间接通信(信箱) 直接通信(消息队列)
c.管道通信: (内存开辟大小固定的缓冲区)半双工(对讲机)通信(不写满不能读不读空不能写)
进程通信方式①全局变量(共享内存)②事件对象③使用消息进程同步互斥 临界区 信号量 管程
⑤进程和线程
进程:资源调度的最小单位线程:cpu调度的最小单位(一个进程含有多个线程)(内核级线程(用户级线程应用程序负责))多进程 数据分开 同步简单 内存占用多 切换开销大 CPU利用率低 创建切换慢 编程调试简单 进程间影响小 适用于多核多机分布 多线程 共享进程数据 共享简单同步复杂 占内存小 切换简单 CPU利用率高 创建销毁快 编程复杂调试复杂 一个线程挂掉整个进程挂掉 适用于多核分布
⑥顺序存储结构(数组)和链式存储结构(链表)的比较优缺点顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的(存储空间受限)。 优点:存储密度大(=1),存储空间利用率高。缺点:插入或删除元素时不方便。中间位置插删需要移动大量元素。链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。 优点:插入或删除元素时很方便,使用灵活。缺点:存储密度小(<1),存储空间利用率低。使用情况顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。比较存储分配的方式 顺序表的存储空间是静态分配的(一次划定上限)链表的存储空间是动态分配的(随时增减)存储密度 = 结点数据本身所占的存储量/结点结构所占的存储总量 顺序表的存储密度 = 1链表的存储密度 < 1基于时间的比较存取方式 顺序表可以随机存取,也可以顺序存取链表是顺序存取的插入/删除时移动元素个数 顺序表平均需要移动近一半元素链表不需要移动元素,只需要修改指针
7月面试汇集
最新推荐文章于 2024-11-08 11:30:25 发布