STL中list实现
时间: 2023-11-15 16:06:56 浏览: 108
在C++的STL(Standard Template Library)中,`list`是一个双向链表(doubly linked list)的容器类。它提供了一组用于操作链表的方法和算法。
要使用`list`,需要包含头文件`<list>`,然后使用`std::list`来定义一个链表对象。例如:
```cpp
#include <list>
std::list<int> myList; // 定义一个存储整数的链表
```
`list`类提供了一系列的方法,可以在链表中进行插入、删除、访问等操作。下面是一些常用的方法示例:
- `push_back(value)`: 在链表末尾插入一个元素。
- `push_front(value)`: 在链表头部插入一个元素。
- `pop_back()`: 删除链表末尾的元素。
- `pop_front()`: 删除链表头部的元素。
- `front()`: 返回链表头部的元素。
- `back()`: 返回链表末尾的元素。
- `insert(iterator, value)`: 在指定位置插入一个元素。
- `erase(iterator)`: 删除指定位置的元素。
除了上述方法之外,`list`还提供了其他一些方法和迭代器,可以方便地遍历、查找、排序等操作。
以下是一个示例代码,展示了如何使用`list`进行插入、删除和遍历操作:
```cpp
#include <iostream>
#include <list>
int main() {
std::list<int> myList;
myList.push_back(1);
myList.push_back(2);
myList.push_back(3);
std::cout << "List elements: ";
for (auto it = myList.begin(); it != myList.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
myList.pop_front();
std::cout << "List elements after pop_front(): ";
for (auto it = myList.begin(); it != myList.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
这是`list`的基本用法,你可以根据需要选择适合的方法来操作链表。希望能帮到你!如果还有其他问题,请继续提问。
阅读全文