[STL]list

一.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源码剖析》

原文地址:https://www.cnblogs.com/Rosanna/p/3512322.html