stl 链表
时间: 2023-06-28 16:13:46 浏览: 120
STL中提供了双向链表容器`std::list`,它是一个模板类,可以存储任何类型的数据。与数组不同,链表中的元素在内存中不是连续存储的,而是通过指针连接起来的。
使用`std::list`需要包含头文件`<list>`。
下面是一些常见的`std::list`操作:
1. 创建空链表:
```c++
std::list<int> mylist; // 创建一个空链表
```
2. 在链表末尾添加元素:
```c++
mylist.push_back(1); // 在链表末尾添加元素1
```
3. 在链表开头添加元素:
```c++
mylist.push_front(2); // 在链表开头添加元素2
```
4. 在链表中插入元素:
```c++
std::list<int>::iterator it = mylist.begin(); // 获取链表的迭代器
mylist.insert(it, 3); // 在迭代器it所指向的位置前插入元素3
```
5. 删除链表中的元素:
```c++
mylist.pop_back(); // 移除链表末尾的元素
mylist.pop_front(); // 移除链表开头的元素
std::list<int>::iterator it = mylist.begin(); // 获取链表的迭代器
mylist.erase(it); // 移除迭代器it所指向的元素
```
6. 遍历链表:
```c++
for (std::list<int>::iterator it = mylist.begin(); it != mylist.end(); ++it) {
std::cout << *it << " ";
}
```
上述代码中,`mylist.begin()`返回链表的第一个元素的迭代器,`mylist.end()`返回链表最后一个元素之后的迭代器。在遍历过程中,通过`++it`将迭代器指向下一个元素,`*it`获取当前元素的值。
以上是STL链表的一些基本操作,更详细的使用方法可以参考STL的官方文档。
阅读全文