STL-list

【1】    list的迭代器要设置成class,因为链表的节点是分离的而vector的迭代器就用指针就可以了,因为vector是连续的,list的大小为4

【2】    说说list的底层存储机制

List是一个双向环状链表,以节点为单位存放数据,节点的地址内存不一定连续,每次插入或删除一个元素,就配置或释放一个一个元素空间

【3】    什么情况下使用vector,什么情况下使用list

Vector可以随机存储元素(即可以通过公式直接计算出元素的地址,而不需要挨个的查找)但在非尾部插入数据时,效率很低,适合对象简单,对象变化量不大,随机访问频繁。List不支持随机存储,适用于对象大,对象数量变化频繁,插入和删除频繁。

【4】    List自带排序函数和排序原理

其实就是归并排序的思想:将前两个元素合并,再将后连个元素合并,然后合并着两个子序列为4个元素的子序列,重复这一过程,得到8,16,…,子序列最后得到的就是排序后的序列,时间复杂度为O(nlogn)

【5】    写多读少应该使用什么容器

链表的插入操作是常数时间复杂度,访问操作是O(n),是最适合写多读少的容器


猜你喜欢

转载自blog.csdn.net/m0_37947204/article/details/80134139