c++ list类
时间: 2023-08-20 17:14:27 浏览: 95
c++list类实现
5星 · 资源好评率100%
C++ 中的 `list` 类是一个双向链表容器,它可以动态地存储数据,并且可以在任意位置进行快速插入和删除操作,具有较好的性能表现。`list` 容器的头文件是 `#include <list>`。使用 `list` 类需要注意以下几点:
1. `list` 是一个模板类,需要指定存储元素的类型,例如 `list<int>` 表示存储整型数据的链表。
2. `list` 中的元素是通过指针进行连接的,因此不能使用下标运算符 `[]` 来访问元素,可以使用迭代器来访问元素。
3. `list` 支持以下操作:
- `push_back` / `push_front`:在链表尾部或头部插入元素;
- `pop_back` / `pop_front`:删除链表尾部或头部的元素;
- `insert`:在指定位置插入元素;
- `erase`:删除指定位置的元素;
- `size`:返回链表长度;
- `clear`:清空链表中的所有元素。
一个简单的示例代码如下:
```c++
#include <iostream>
#include <list>
using namespace std;
int main() {
list<int> mylist;
for (int i = 0; i < 5; i++) {
mylist.push_back(i);
}
for (auto it = mylist.begin(); it != mylist.end(); it++) {
cout << *it << " ";
}
cout << endl;
mylist.pop_front();
mylist.insert(mylist.begin(), -1);
mylist.erase(++mylist.begin());
for (auto x : mylist) {
cout << x << " ";
}
cout << endl;
return 0;
}
```
输出:
```
0 1 2 3 4
-1 1 2 3 4
```
在这个示例中,我们首先创建了一个空的 `list` 对象 `mylist`,然后使用 `push_back` 在尾部插入了五个整数元素;接着使用迭代器遍历并输出链表中的元素;然后使用 `pop_front` 删除了链表头部的元素 `0`,使用 `insert` 在链表头部插入了一个元素 `-1`,使用 `erase` 删除了链表中的第二个元素 `1`;最后再次遍历并输出链表中的元素。
阅读全文