std:: list
|
定义于头文件
<list>
|
||
|
template
<
class
T,
|
(1) | |
|
namespace
pmr
{
template
<
class
T
>
|
(2) | (C++17 起) |
std::list
是一个支持在容器任意位置进行常量时间元素插入和删除的容器。不支持快速随机访问。它通常被实现为双向链表。与
std::forward_list
相比,该容器提供了双向迭代能力,但空间效率较低。
在列表内或跨多个列表添加、移除和移动元素不会使迭代器或引用失效。仅当对应元素被删除时,迭代器才会失效。
std::list
满足
Container
、
AllocatorAwareContainer
、
SequenceContainer
及
ReversibleContainer
的要求。
std::list
的所有成员函数均为
constexpr
:可以在常量表达式的求值过程中创建和使用
std::list
对象。
然而,
|
(C++26 起) |
目录模板参数
成员类型
成员函数
非成员函数
注释
示例
运行此代码
#include <algorithm> #include <iostream> #include <list> int main() { // 创建包含整数的列表 std::list<int> l = {7, 5, 16, 8}; // 在列表前端添加整数 l.push_front(25); // 在列表末尾添加整数 l.push_back(13); // 通过搜索在16之前插入整数 auto it = std::find(l.begin(), l.end(), 16); if (it != l.end()) l.insert(it, 42); // 输出列表内容 std::cout << "l = { "; for (int n : l) std::cout << n << ", "; std::cout << "};\n"; } 输出: l = { 25, 7, 5, 42, 16, 8, 13, };
缺陷报告以下行为变更缺陷报告被追溯应用于先前发布的C++标准。
另请参阅
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||