如何建立免费公司网站,潍坊做网站的电话,做网站工作的怎么填职务,wordpress本地写文章文章目录 前言构造函数capacitylist的访问insertswapsort 前言 看一下list, 在任意位置可以进行O(1)插入删除的操作。 它怎么实现这个东西#xff1f;它其实就是一个带头双向循环链表。
#成员函数
构造函数 这里面的构造函数学完string和vector之后已经相当熟悉了。
capaci… 文章目录 前言构造函数capacitylist的访问insertswapsort 前言 看一下list, 在任意位置可以进行O(1)插入删除的操作。 它怎么实现这个东西它其实就是一个带头双向循环链表。
#成员函数
构造函数 这里面的构造函数学完string和vector之后已经相当熟悉了。
capacity 它没有resize和reserve为什么 它没有扩容这个玩法它是链表。
list的访问
链表和vector、string的最大区别是什么 它不支持【】,不能像数组一样访问。
list严格来说要遍历和修改它就只有一种方式迭代器。
insert list和vector一样没有提供它自己的find
swap
把链表的头指针机型交换就可以了。
sort
sort很值得仔细讲一下
为什么算法库提供了一个sort,list它还要自己提供一个sort? 最主要的是算法库提供的sort,list用不了。
看算法库里面的sort做了什么事情。 这块减的时候出问题了。 算法库里面的sort是用快排实现的快排要解决最坏的问题就要用分数取中。 有左边和右边直接算出中间的位置进行访问链表不行。 迭代器的类型跟什么有关系呢 跟容器的底层结果有关。
从功能上来说迭代器的类型分三种。 1.单向迭代器只能 不能- - 比如单链表 2.双向迭代器可以 - -比如双向链表。 3.随机迭代器可以- --比如vector, string. 要求双向可以传随机。要求单向可以传双向。 你可以认为双向是一个特殊的单向随机也是一个特殊的单向。
基于上述的原因也就明白list为什么有一个单独的sort. 不过链表在90%的情况下都不会用这个sort,因为它的性能不行。
list提供的sort底层用的是归并排序归并排序本身效率也不错但是由于种种原因。 给大家测试一下。
list当中同样的数据一个放到直接用list提供的sort进行排序 另一个拷贝到vector然后进行排序最后拷贝回去。 比较一下这两者之间的效率。
差距还是很大的。