c语言编程笔录

您现在的位置是:首页 > 编程 > 编程经验

编程经验

C++ STL入门教程(2) list双向链表使用方法(附程序

吴心真 2023-08-17编程经验
前言list是C++标准模板库(STL)中的容器之一,它基于双向链表实现。在本教程中,我们将介绍list的使用方法。我们将学习如何创建list对象、插入和删除元素、

前言

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_backpush_front函数来分别在尾部和头部插入元素。例如:

myList.push_back(10); // 在尾部插入元素10
myList.push_front(5); // 在头部插入元素5

我们还可以使用insert函数在特定位置插入元素。例如:

auto it = myList.begin(); // 获取一个迭代器指向第一个元素
myList.insert(it, 7); // 在第一个元素之前插入元素7

要删除list中的元素,我们可以使用pop_backpop_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容器来存储和操作数据。

文章评论