一.list的成员函数
Iterators:
list.begin()
回传指向第一个元素的 Iterator。list.end()
回传指向最末元素的下一个位置的 Iterator。list.rbegin()
回传指向最末个元素的反向 Iterator。list.rend()
回传指向第一个元素的前一个位置的反向 Iterator。
Capacity/Size:
list.empty()
若list内部为空,则回传true值。list.size()
回传list内实际的元素个数。lsit.resize()
重新分派list的长度。
Element Access
list.front()
存取第一个元素。list.back()
存取最末个元素。
Modify methods
list.push_front()
增加一个新的元素在 list 的前端。list.pop_front()
删除 list 的第一个元素。list.push_back()
增加一个新的元素在 list 的尾端。list.pop_back()
删除 list 的最末个元素。
Other
迁移操作transfer:将某连续范围的元素迁移到某个特定位置之前。这个操作非常重要,为splice,sort,merge奠定了基础。
- list.splice() 接合链表。
- list.sort() 链表排序。list不能使用STL的sort(),因为list不支持随机存取,sort()只支持RamdonAccessIterator。
- list.merge() 合并两个链表,两个lists必须有序。
- list.reverse() 翻转链表。
二.list的数据结构
跟印象中不同的是,list是一个环状双向链表,并在尾端可以设置了一个空节点。如下图所示:
参考资料:
1.*
2.《STL源码剖析》