1. list 的介绍及使用
1.1 list 的介绍
list 是 C++ STL 中的一个重要容器,它是一个带头结点的双向循环链表。与 vector 不同,list 在任意位置插入和删除元素的时间复杂度都是 O(1),但不支持随机访问(即不能通过下标直接访问元素)。
1.2 list 的使用
list 提供了丰富的接口,下面我们介绍其中一些常见且重要的接口。
1.2.1 list 的构造
| 构造函数 | 接口说明 |
|---|---|
list(size_type n, const value_type& val) | 构造包含 n 个值为 val 的元素的 list |
list() | 构造空的 list |
list(const list& x) | 拷贝构造函数 |
list(InputIterator first, InputIterator last) | 用区间 [first, last) 中的元素构造 list |
1.2.2 list 迭代器的使用
迭代器可以暂时理解为指向 list 中某个节点的指针。
begin():返回指向第一个元素的迭代器end():返回指向最后一个元素下一个位置的迭代器rbegin():返回指向最后一个元素的反向迭代器(即 end() 位置)rend():返回指向第一个元素前一个位置的反向迭代器(即 begin() 位置)
注意:
- begin 和 end 是正向迭代器,++ 向后移动。
- rbegin 和 rend 是反向迭代器,++ 向前移动。
1.2.3 list capacity
| 函数声明 | 接口说明 |
|---|---|
empty() | 检测 list 是否为空 |
size() | 返回 list 中有效节点的个数 |
1.2.4 list element access
| 函数声明 | 接口说明 |
|---|---|
front() | 返回第一个节点中值的引用 |
back() | 返回最后一个节点中值的引用 |
1.2.5 list modifiers
| 函数声明 | 接口说明 |
|---|---|
push_front | 在 list 首元素前插入值为 val 的元素 |
pop_front |


