关于STL中list容器的一些总结

关于STL中list容器的一些总结

list简介

list 容器是C++标准模板库(STL)提供的一种链表容器。与数组不同,链表中的元素在内存中不是连续排列的,而是存在于通过链接指针相连的不同的结点中。

list容器的特点有:
- 双向迭代器
- 随机访问被禁用
- 支持在list的任何位置快速插入、删除元素
- 不支持随机访问

list容器的使用

基本操作

创建和初始化

#include<list>
using namespace std;

int main()
{
    list<int> mylist;//创建空list
    list<int> mylist2(5);//创建包含5个0的list

    for(int i=0;i<5;i++)
    {
        mylist2.push_back(i);//向list的尾部插入元素
    }

    cout << "mylist2: ";
    for(int i : mylist2) 
    {
        cout << i << " ";//遍历list
    }
    cout << endl;

    return 0;
}

输出结果:

mylist2: 0 1 2 3 4

插入元素

插入元素的操作主要有以下方法:
- push_front:在链表头部添加元素
- push_back:在链表尾部添加元素
- insert:在指定位置插入元素

代码示例:

#include<list>
using namespace std;

int main()
{
    list<int> mylist = {1,2,3,4,5};

    mylist.push_front(0);//在尾部添加元素 0
    mylist.push_back(6);//在头部添加元素 6
    mylist.insert(++mylist.begin(),10);//在第二个位置后面添加元素 10

    for(int i : mylist) 
    {
        cout << i << " ";
    }
    cout << endl;

    return 0;
}

输出结果:

0 1 10 2 3 4 5 6

删除元素

删除元素的操作主要有以下方法:
- pop_front:删除链表头部元素
- pop_back:删除链表尾部元素
- erase:删除指定位置的元素

代码示例:

#include<list>
using namespace std;

int main()
{
    list<int> mylist = {1,2,3,4,5};

    mylist.pop_front();//删除头部元素
    mylist.pop_back();//删除尾部元素
    mylist.erase(++mylist.begin());//删除第二个元素

    for(int i : mylist) 
    {
        cout << i << " ";
    }
    cout << endl;

    return 0;
}

输出结果:

2 3 4

高级操作

反转链表

reverse函数可以用于反转链表。

代码示例:

#include<list>
using namespace std;

int main()
{
    list<int> mylist = {1,2,3,4,5};

    mylist.reverse();//反转链表

    for(int i : mylist) 
    {
        cout << i << " ";
    }
    cout << endl;

    return 0;
}

输出结果:

5 4 3 2 1

排序链表

sort函数可以用于排序链表。默认情况下,sort函数使用元素类型的小于比较运算符(<)进行排序。

代码示例:

#include<list>
using namespace std;

int main()
{
    list<int> mylist = {5,3,4,2,1};

    mylist.sort();//排列链表

    for(int i : mylist) 
    {
        cout << i << " ";
    }
    cout << endl;

    return 0;
}

输出结果:

1 2 3 4 5

总结

本文简要地阐述了STL中list容器的使用方法及一些常见操作,包括创建与初始化、插入与删除元素、反转链表和排序链表等。list容器是一种灵活性较高的容器,因此在需要经常插入删除元素的应用场景中,使用list容器可以很好地提升效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于STL中list容器的一些总结 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • Linux chkconfig 命令的使用

    当你在Linux系统上安装一个服务的时候,你需要确保它在启动时自动启动。使用 chkconfig 命令可以很方便地配置服务的启动方式。下面是 chkconfig 命令的使用攻略。 1. 简介 chkconfig 命令被用于控制Linux系统服务的启动方式。它允许你从系统启动或关闭服务并设置服务在各自运行级别中启用或禁用。 2. 检查服务状态 你可以使用以下命…

    other 2023年6月26日
    00
  • 微信公众号测试账号自定义菜单的实例代码

    微信公众号测试账号自定义菜单的实例代码攻略 自定义菜单是微信公众号开发中比较重要和常见的功能之一,它可以让用户更方便快捷的使用公众号中的各种功能,提升用户体验。本文将详细讲解如何使用微信公众号测试账号自定义菜单的实例代码。 步骤一:申请测试账号 首先需要申请微信公众平台的测试账号,具体的申请流程可以参考微信公众平台的官方文档,这里不再赘述。 步骤二:获取Ac…

    other 2023年6月25日
    00
  • Java Spring AOP源码解析之事务实现原理

    Java Spring AOP源码解析之事务实现原理 1. 什么是Spring AOP? Spring AOP (Aspect-Oriented Programming,面向切面编程)是一种增强现有代码的技术,它可以通过在不改变原有代码的情况下,将一些横切关注点(cross-cutting concerns)应用到目标对象的方法上。其中,关注点是软件开发中需…

    other 2023年6月28日
    00
  • Centos设置静态IP及修改Centos配置文件的方法

    下面我将详细讲解如何在CentOS操作系统上设置静态IP及修改CentOS配置文件的方法。步骤如下: 步骤1:打开网卡配置文件 在CentOS系统中,所有网卡相关的配置信息存储在 /etc/sysconfig/network-scripts/ 目录下。因此,首先你需要打开该目录下的对应网卡的配置文件进行编辑。 比如,如果你要修改eth0网卡的配置信息,可以执…

    other 2023年6月25日
    00
  • C++中的变长参数深入理解

    C++中的变长参数深入理解 一、什么是变长参数 变长参数,即“可变参数”,指的是函数参数的数量和类型在编译阶段并不确定,而是在运行时动态决定。在C++中,我们可以使用标准库头文件<cstdarg>中的宏来实现变长参数。 二、如何实现变长参数 实现变长参数的核心宏有三个,分别是va_list、va_start和va_arg。 1. va_list宏…

    other 2023年6月27日
    00
  • linux下通过.desktop文件创建桌面程序图标及文件编写方式…

    Linux 下通过 .desktop 文件创建桌面程序图标及文件编写方式 如果你是一个 Linux 系统的用户,你可能需要经常运行某些程序。有些程序可以通过终端启动,但有些程序则需要在桌面上创建快捷方式。在 Linux 中,我们可以通过 .desktop 文件来创建一个程序的图标及启动方式。 .desktop 文件是什么? .desktop 文件是一个文本文…

    其他 2023年3月28日
    00
  • HP ILO2 使用详细教程[图文]

    HP ILO2 使用详细教程[图文] 什么是HP ILO2 HP ILO2(Integrated Lights-Out 2)是一种HP服务器的管理功能,可以远程控制服务器的硬件操作以及监控服务器状态,支持远程开机、重启、安全关机等操作,同时还能获取服务器运行状态信息,提高管理员操作服务器的效率和便捷性。 使用ILO2登录服务器 首先需确认服务器已配置ILO2…

    other 2023年6月27日
    00
  • 图解JS原型和原型链实现原理

    图解JS原型和原型链实现原理 1. 什么是原型 原型是 JavaScript 中一种特殊的对象,对象具有指向其他对象的链接,这个链接被称为 prototype,也就是对象原型。 2. 原型链 原型链是多个对象通过 prototype 属性连接起来的链式结构,在 JavaScript 中,对象可以通过 proto 属性访问到它的原型,而原型本身也可以有自己的原…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部