STL源码剖析-容器-slist
TL list是一个双向链表(double linked list)。SGI STL提供了另一个单向链表(single linked list)也就是slist。
slist与list差异:
- slist迭代器是单向的Forward Iterator,list迭代器是双向的Bidirectional Iterator。(slist迭代器没有
--操作,因为是单向的Forward Iterator)。 - 单向链表所耗空间更小。
- list是双向环形链表,slist是单向链表。
- slist不提供push_back(),仅提供push_front()(头插法)。
slist与list相同点:
- 都具有“头节点”,且都不放置元素数据。
- 进行插入、删除、接合等操作,均不会导致原迭代器失效(当然,指向被移除的那个节点的迭代器肯定会失效)。
list和slist都不能使用 STL 算法sort(),必须使用自己的sort()。
slist基本操作:
push_front():从头部插入元素
pop_front():从头部取出元素
front():取头部元素

浙公网安备 33010602011771号