list作为一个双向链表对外表现,其内部实际是一个双向循环链表,初始状态时有一个空的节点组成双向循环链表。它的优点是插入、删除、接合等操作时不会使其他迭代器失效(甚至进行操作的那个迭代器也不会失效),由于涉及到大量的指针操作,其涉及难度大于vector。为了能融入STL算法,它必须使用定制的迭代器而不能使用原生的指针。由于STL的sort算法只接受随机迭代器,而list的迭代器是双向迭代器不支持随机访问,所有list需要自己实现排序算法,这里我采用了快速排序
代码实现:https://github.com/inmail/mySTL/blob/master/mySTL/5stl_list.h