c++stl链表类模版
时间: 2023-10-22 11:09:46 浏览: 38
C++ STL中的链表类模板是 `std::list`,它定义在头文件 `<list>` 中。下面是一个简单的示例:
```c++
#include <iostream>
#include <list>
int main() {
std::list<int> myList; // 创建一个空链表
// 添加元素
myList.push_back(1);
myList.push_back(2);
myList.push_back(3);
// 遍历链表并输出元素
for (auto it = myList.begin(); it != myList.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们首先创建了一个空链表 `myList`。然后使用 `push_back()` 方法向链表中添加元素。最后,我们使用迭代器遍历链表并输出其中的元素。
除了 `push_back()` 方法,`std::list` 还提供了许多其他有用的方法,例如 `push_front()`、`pop_back()`、`pop_front()`、`insert()`、`erase()` 等等。具体的使用方法可以查看 C++ STL 的相关文档。
相关问题
c++stl 链表
C++ STL(Standard Template Library)中提供了链表的实现,可以使用std::list模板类来创建链表。
下面是一个简单的示例代码:
```c++
#include <iostream>
#include <list>
using namespace std;
int main() {
list<int> mylist; // 创建一个空的链表
// 在链表尾部添加元素
mylist.push_back(3);
mylist.push_back(6);
mylist.push_back(9);
// 在链表头部添加元素
mylist.push_front(1);
mylist.push_front(2);
// 使用迭代器遍历链表并输出
list<int>::iterator it;
for (it = mylist.begin(); it != mylist.end(); ++it) {
cout << *it << " ";
}
cout << endl;
// 删除头部元素和尾部元素
mylist.pop_front();
mylist.pop_back();
// 输出链表长度
cout << "Size of mylist: " << mylist.size() << endl;
return 0;
}
```
输出结果为:
```
2 1 3 6 9
Size of mylist: 3
```
在上述示例代码中,我们使用std::list模板类创建了一个链表,并向其中添加了元素。我们还演示了如何使用迭代器遍历链表、删除链表中的元素以及输出链表的大小。
需要注意的是,在使用std::list模板类时,需要包含头文件<list>。
stl 链表
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的官方文档。