Advertisement

C/C++面试(湖南兴盛优选)

阅读量:

1.STL中的vector与list的区别
a. vector占用连续的内存区域来存储数据项,而list采用双向链表实现,其内存空间并非连续分配
b. vector在执行插入或删除操作时,需要动态地重新调整后续数据块的位置,导致时间复杂度较高;相反, list通过调整指针指向的方式完成插入或删除操作,从而实现了较低的时间复杂度
c. vector可以通过索引快速定位特定索引位置的数据项,其查找时间为O(1);而list由于其数据存储方式的特点,执行查找操作时需逐个节点进行遍历,因此其查找时间为线性阶

检测单链表是否存在环的方法如下:首先初始化两个指针变量slow和fast,在链表头部开始;然后让fast以两步进发的速度移动(即每次跳过一个节点),而slow则只走一步;接着进入循环体:只要fast不为空且fast不等于slow,则继续执行循环体;一旦满足上述任一终止条件,则说明当前链表中不存在环状结构;反之若在循环结束后发现fast等于slow,则证明该单链表存在环

3.C++面向对象中虚函数机制 简要介绍了纯 virtual 函数、虚拟指针与虚拟函数表的概念,在子类覆盖其父类的纯 virtual 函数时,在该子类的 virtual function table 中将存储其重写的虚拟函数(但随后询问了如何实现这一机制却未能解答)

**4. 静态关键字

全部评论 (0)

还没有任何评论哟~