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

  1. 概述

STL是一组C++标准程序库,提供了丰富的组件,包括容器、迭代器、算法、函数对象等等。其中STL容器中list是一种双向链表结构。本教程中将详细讲解如何使用C++的STL容器list。

  1. list容器的基本声明

list容器属于C++ STL中的一种容器,因此在使用时需要包含头文件#include<list>。list容器的声明方式如下:

list<T> lst;

其中,T代表list容器中存储的元素类型,可以是基本数据类型、结构体、类等各种数据类型。

  1. list容器的基本操作

a. 插入元素

list容器支持在表头和表尾插入元素,其中函数的名称分别为push_frontpush_back。例如:

list<int> lst;
lst.push_front(1);
lst.push_back(2);

这个例子中,首先创建了一个空的list容器lst,然后使用push_front方法在lst的表头插入了元素1,再使用push_back方法在lst的表尾插入了元素2。

b. 删除元素

list容器也支持删除元素操作,其中包括pop_frontpop_back方法,分别用于删除表头和表尾的元素。例如:

list<int> lst;
lst.push_back(1);
lst.push_back(2);
lst.pop_back();

这个例子中,首先创建了一个list容器lst,并使用push_back方法向其中插入了两个元素,然后使用pop_back方法删除了最后一个元素。

c. 访问元素

list容器支持通过frontback方法访问表头和表尾的元素。例如:

list<int> lst;
lst.push_back(1);
lst.push_back(2);
cout<<lst.front()<<endl;
cout<<lst.back()<<endl;

这个例子中,首先创建了一个list容器lst,并使用push_back方法向其中插入了两个元素,然后使用frontback方法访问了最前和最后的元素。

d. 查找元素

list容器也支持查找元素,其中包括findcount方法,分别用于查找元素和计数。例如:

list<int> lst;
lst.push_back(1);
lst.push_back(2);
lst.push_back(3);
if (lst.find(2) != lst.end()) {
    cout<<"2 is found in list"<<endl;
}
cout<<"num of 1 in list:"<<lst.count(1)<<endl;

这个例子中,首先创建了一个list容器lst,并使用push_back方法向其中插入了三个元素,然后使用find方法在lst中查找元素2的位置,如果找到则输出“2 is found in list”,接着使用count方法计算lst中元素1的数量,并输出该数量。

  1. list容器的高级操作

a. 反转容器

使用reverse方法可以对list容器进行反转操作。例如:

list<int> lst;
lst.push_back(1);
lst.push_back(2);
lst.push_back(3);
lst.reverse();

这个例子中,首先创建了一个list容器lst,并使用push_back方法向其中插入了三个元素,然后使用reverse方法将lst中的元素进行了反转。

b. 排序容器

使用sort方法可以对list容器进行排序操作。例如:

list<int> lst;
lst.push_back(3);
lst.push_back(2);
lst.push_back(1);
lst.sort();

这个例子中,首先创建了一个list容器lst,并使用push_back方法向其中插入了三个元素,然后使用sort方法将lst中的元素进行了排序操作。

  1. 示例代码
#include <iostream>
#include <list>

using namespace std;

int main() {
    list<int> lst;
    lst.push_front(1);//list头部插入1
    lst.push_back(2);//list尾部插入2
    lst.push_back(3);//list尾部插入3
    lst.pop_front();//list头部弹出元素
    lst.reverse();//list反转操作
    lst.sort();//list排序操作
    for (auto itr = lst.begin(); itr != lst.end(); itr++) {//遍历list容器
        cout << *itr << endl;
    }
    return 0;
}

这个示例代码中,首先创建了一个list容器lst,通过push_frontpush_back方法向其中插入了三个元素1、2、3,然后使用pop_front方法将最前面的元素1从lst中弹出,使用reverse方法对lst进行反转操作,使用sort方法对lst进行排序,最后用beginend方法遍历lst容器,并通过cout方法输出容器中的元素。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ STL入门教程(2) list双向链表使用方法(附程序代码) - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • C++实现矩阵原地转置算法

    C++实现矩阵原地转置算法 什么是矩阵原地转置算法? 矩阵原地转置算法是指将一个矩阵的行和列互换,得到一个新的矩阵的操作。该算法主要应用于图像处理、数据挖掘和机器学习等领域。 矩阵原地转置算法的实现 下面是 C++ 实现矩阵原地转置算法的示例代码: void transposeMatrix(int *matrix, int rows, int cols) {…

    C 2023年5月22日
    00
  • Win10安装中提示错误0xC1900101的多种解决方法

    Win10安装中提示错误0xC1900101的多种解决方法 在 Win10 的升级或安装过程中,可能会遇到报错 “0xC1900101”,该错误通常提示安装过程无法完成,这时我们需要采取相应的解决方法。 下面介绍 “Win10安装中提示错误0xC1900101的多种解决方法”: 解决方法1:更新BIOS 更新BIOS是一种可行的解决方法,因为BIOS更新可以…

    C 2023年5月23日
    00
  • 详解Qt如何加载libxl库

    下面是详解Qt如何加载libxl库的完整攻略: 步骤一:下载libxl库并安装 libxl是一款用于读写Excel文件的C++库。我们首先需要下载libxl库并进行安装。在官网http://www.libxl.com/download.html下载对应版本的库,然后解压至指定目录。 步骤二:在Qt项目中添加libxl库 在Qt项目中,我们可以通过.pro文件…

    C 2023年5月23日
    00
  • Xshell怎么设置Ctrl+C Ctrl+V快捷键为复制粘贴 Xshell6快捷键的设置教程

    下面是详细的攻略: Xshell怎么设置Ctrl+C Ctrl+V快捷键为复制粘贴 在Xshell中,复制和粘贴通常是使用右键菜单或者在菜单栏中通过选择菜单项来完成的。但是,你也可以通过在Xshell中设置Ctrl+C和Ctrl+V为复制和粘贴快捷键来提高操作效率。 打开Xshell,进入Session Properties。 选择你要进行设置的会话,并点击…

    C 2023年5月23日
    00
  • C语言实现外卖管理系统

    C语言实现外卖管理系统 系统介绍 外卖管理系统主要包括用户管理、商品管理、订单管理和数据统计模块。它可以实现用户注册、登录和下单,管理员可以发布商品,接收和处理订单,并统计每日、每周、每月和每年的收益情况。 实现步骤 1. 设计数据库 使用SQLite作为数据库,设计以下三张数据表: users表,记录用户信息,包括用户名、密码、手机号等; orders表,…

    C 2023年5月23日
    00
  • JS+Canvas实现的俄罗斯方块游戏完整实例

    JS+Canvas实现的俄罗斯方块游戏完整实例攻略 1. 实现思路 俄罗斯方块游戏由方块组成,玩家需要操控方块进行堆积。本实例的实现思路如下: 使用HTML5的Canvas元素绘制游戏界面和游戏元素(包括方块和游戏背景); 使用JavaScript实现游戏逻辑及方块的控制移动; 使用CSS控制游戏界面的样式布局; 使用定时器控制游戏的刷新速度和难度; 2. …

    C 2023年5月22日
    00
  • C语言详解UDP通信的实现

    针对您提到的话题“C语言详解UDP通信的实现”的完整攻略,我将为您提供以下内容。 UDP是什么 UDP(User Datagram Protocol)是一种无连接协议,它在通信时不需要建立连接,因此速度快,但是容易发生数据丢失和乱序。UDP适合在局域网内传输数据。 C语言如何实现UDP通信 C语言具有强大的网络编程功能,要实现UDP通信,我们需要调用sock…

    C 2023年5月23日
    00
  • Win8.1提示激活windows错误代码 0xC004F074如何解决

    Win8.1提示激活windows错误代码 0xC004F074的解决方式如下: 1. 查看系统是否已激活 可以先检查系统是否已激活,按下Win+R键,输入“slmgr.vbs -xpr”,回车后就能看到系统的激活状态。若提示“Windows 已經激活,產品ID:xxxxx-xxxxx-xxxxx-xxxxx-xxxxx”,则说明系统已激活;若提示“Wind…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部