list

  1. 构造函数
  2. list():创建一个空链表。
  3. list(const list& other):拷贝构造函数,用另一个链表初始化当前链表。

  4. 赋值和交换

  5. operator=:将一个链表赋值给另一个链表。
  6. assign:用特定数量的元素或范围内的元素替换链表的内容。
  7. swap:交换两个链表的内容。

  8. 迭代器相关

  9. begin:返回指向第一个元素的迭代器。
  10. end:返回指向最后一个元素之后的位置的迭代器。
  11. rbegin:返回指向最后一个元素的反向迭代器。
  12. rend:返回指向第一个元素之前的位置的反向迭代器。

  13. 容量

  14. empty:判断链表是否为空。
  15. size:返回链表中元素的数量。
  16. max_size:返回链表最大可容纳的元素数量。

  17. 访问元素

  18. front:返回第一个元素的引用。
  19. back:返回最后一个元素的引用。

  20. 修改容器

  21. push_front:在链表的开头插入一个元素。
  22. pop_front:移除链表的第一个元素。
  23. push_back:在链表的末尾插入一个元素。
  24. pop_back:移除链表的最后一个元素。
  25. insert:在指定位置插入一个或多个元素。
  26. erase:移除指定位置或范围内的一个或多个元素。
  27. clear:移除链表的所有元素。

  28. 其他操作

  29. splice:将另一个链表的元素移动到当前链表的指定位置。
  30. merge:将两个有序链表合并为一个有序链表。
  31. sort:对链表进行排序。
  32. reverse:反转链表中的元素顺序。

  33. 构造函数

```cpp #include #include using namespace std;

int main() { // 创建空链表 list mylist;

   // 用另一个链表初始化当前链表
   list<int> otherlist = {1, 2, 3};
   list<int> mylist2(otherlist);

   return 0;

} ```

  1. 赋值和交换

```cpp // 赋值 mylist = otherlist;

// 用特定数量的元素或范围内的元素替换链表的内容 mylist.assign(5, 10); // 用5个值为10的元素替换mylist的内容

// 交换两个链表的内容 mylist.swap(otherlist); ```

  1. 迭代器相关cpp // 使用迭代器访问元素 list<int>::iterator it = mylist.begin(); for (; it != mylist.end(); ++it) { cout << *it << " "; }

  2. 容量: ```cpp // 判断链表是否为空 if (mylist.empty()) { cout << "链表为空" << endl; }

// 返回链表中元素的数量 cout << "链表中元素的数量:" << mylist.size() << endl; ```

  1. 访问元素: ```cpp // 返回第一个元素的引用 int firstElement = mylist.front();

// 返回最后一个元素的引用 int lastElement = mylist.back(); ```

  1. 修改容器: ```cpp // 在链表的开头插入一个元素 mylist.push_front(100);

// 移除链表的第一个元素 mylist.pop_front();

// 在链表的末尾插入一个元素 mylist.push_back(200);

// 移除链表的最后一个元素 mylist.pop_back();

// 在指定位置插入一个或多个元素 list::iterator it = mylist.begin(); advance(it, 2); // 移动迭代器到第三个位置 mylist.insert(it, 777);

// 移除指定位置或范围内的一个或多个元素 it = mylist.begin(); advance(it, 1); // 移动迭代器到第二个位置 mylist.erase(it);

// 移除链表的所有元素 mylist.clear(); ```

  1. 其他操作: ```cpp // 将另一个链表的元素移动到当前链表的指定位置 list anotherlist = {9, 8, 7}; list::iterator pos = mylist.begin(); advance(pos, 2); // 移动到第三个位置 mylist.splice(pos, anotherlist);

// 将两个有序链表合并为一个有序链表 list sortedlist1 = {1, 3, 5}; list sortedlist2 = {2, 4, 6}; sortedlist1.merge(sortedlist2);

// 对链表进行排序 mylist.sort();

// 反转链表中的元素顺序 mylist.reverse(); ```