📜  C++ 中的列表(1)

📅  最后修改于: 2023-12-03 15:13:58.567000             🧑  作者: Mango

C++ 中的列表

列表是C++中的一种数据结构,它是由一组有序的元素组成的。列表中的每个元素都包含一个指向前驱节点的指针以及一个指向后继节点的指针。使用列表可以高效地进行元素的插入和删除操作,并且不需要像数组那样预先确定数组的大小。

实现

C++标准库中提供了std::list类来实现列表。std::list是一个双向链表,支持常数时间复杂度的插入和删除操作。以下是一个简单的示例:

#include <list>
#include <iostream>
using namespace std;

int main() {
  list<int> l = {1, 2, 3, 4, 5};
  l.push_front(0);
  l.push_back(6);
  for (auto i : l) {
    cout << i << " ";
  }
  cout << "\n";
  l.pop_front();
  l.pop_back();
  for (auto i : l) {
    cout << i << " ";
  }
  cout << "\n";
  return 0;
}

该程序使用了std::list来创建一个包含数字1到5的列表,并在列表的前面插入数字0和在后面插入数字6。接着使用循环输出列表中的所有元素。然后依次从列表前面和后面弹出元素,并再次输出列表中的所有元素。

操作

以下是std::list类支持的一些操作:

  • push_front(const T& value): 在列表的头部插入一个元素。
  • push_back(const T& value): 在列表的尾部插入一个元素。
  • pop_front(): 从列表的头部弹出第一个元素。
  • pop_back(): 从列表的尾部弹出最后一个元素。
  • front(): 返回列表的第一个元素的引用。
  • back(): 返回列表的最后一个元素的引用。
  • size(): 返回列表中元素的数量。
  • empty(): 判断列表是否为空。
  • erase(iterator position): 删除指定位置上的元素。
  • clear(): 删除列表中所有元素。
总结

列表是一种有序的数据结构,适用于频繁插入和删除操作。C++标准库提供了std::list类来实现列表,它支持常数时间复杂度的插入和删除操作,并提供了丰富的操作接口。