C++ STL入门教程(2) list双向链表使用方法(附程序
更新时间:2023-11-15前言
list是C++标准模板库(STL)中的容器之一,它基于双向链表实现。在本教程中,我们将介绍list的使用方法。我们将学习如何创建list对象、插入和删除元素、遍历list、以及使用迭代器进行操作等。
创建list对象
要使用list,首先需要包含头文件<list>
。
#include
接下来,我们可以使用list模板来创建list对象。例如:
std::list<int> myList; // 创建一个空的int类型的list对象 std::list<std::string> myStringList; // 创建一个空的string类型的list对象
插入和删除元素
要向list中插入元素,我们可以使用push_back
和push_front
函数来分别在尾部和头部插入元素。例如:
myList.push_back(10); // 在尾部插入元素10 myList.push_front(5); // 在头部插入元素5
我们还可以使用insert
函数在特定位置插入元素。例如:
auto it = myList.begin(); // 获取一个迭代器指向第一个元素 myList.insert(it, 7); // 在第一个元素之前插入元素7
要删除list中的元素,我们可以使用pop_back
和pop_front
函数分别删除尾部和头部的元素。例如:
myList.pop_back(); // 删除尾部的元素 myList.pop_front(); // 删除头部的元素
我们还可以使用erase
函数删除特定位置的元素。例如:
auto it = myList.begin(); // 获取一个迭代器指向第一个元素 myList.erase(it); // 删除第一个元素
遍历list和使用迭代器
要遍历list,我们可以使用范围循环或迭代器。范围循环适用于C++11及以上版本。例如:
for (const auto& element : myList) { // 对element做一些操作 }
对于C++11之前的版本,我们可以使用迭代器来遍历list。例如:
for (auto it = myList.begin(); it != myList.end(); ++it) { // 对*it做一些操作 }
要使用迭代器进行指定位置的插入和删除操作,可以直接在插入或删除函数中传递迭代器作为参数。例如:
auto it = myList.begin(); // 获取一个迭代器指向第一个元素 myList.insert(++it, 3); // 在第二个元素之后插入元素3 myList.erase(--it); // 删除第一个元素
总结
本教程介绍了list的基本用法,包括创建list对象、插入和删除元素、遍历list以及使用迭代器进行操作等。通过学习本教程,您应该能够使用list容器来存储和操作数据。