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

yizhihongxing

关于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日

相关文章

  • Dreamweaver 8 无法启动的解决方案

    请看下面的攻略: Dreamweaver 8 无法启动的解决方案 问题描述 Dreamweaver 8 是一款常用的网站编辑器,但是在有些情况下,Dreamweaver 8 会出现无法启动的问题,这个问题通常会以弹出错误提示框的方式出现,导致用户无法正常使用 Dreamweaver 8。 解决方案 下面提供一些 Dreamweaver 8 无法启动的解决方案…

    other 2023年6月26日
    00
  • 抖音推送机制和快手一样吗?抖音快手推送机制详解

    抖音推送机制和快手的推送机制有些相似,但也有一些不同之处。在这里,我将为您详细介绍抖音的推送机制,以及其与快手推送机制的不同之处。 抖音推送机制的工作原理 抖音推送机制基于用户行为和偏好驱动。它使用机器学习算法和数据分析来推送个性化的内容。以下是抖音推送机制的工作原理: 搜索关键词 抖音会根据用户搜索的关键词推荐相关的视频,搜索关键词可能是视频标题、主题或者…

    other 2023年6月27日
    00
  • socket.io学习教程之深入学习篇(三)

    《socket.io学习教程之深入学习篇(三)》是一篇关于socket.io的深入学习的教程。该教程主要分为以下几个部分: 一、前言 该部分主要介绍了本教程主要内容以及socket.io的基本概念,这里不再赘述。 二、Socket.io 原理详解 该部分详细介绍了socket.io的原理以及其实现机制,包括了: Socket.io 的核心代码结构 Socke…

    other 2023年6月27日
    00
  • 微信公众号怎么解封 六种解封微信公众号的方法介绍

    微信公众号怎么解封 六种解封微信公众号的方法介绍 如果您的微信公众账号因为违规行为而被封禁,那么该怎么解封呢?本文将介绍六种常用的解封方法,帮助您重新恢复微信公众号的正常状态。 一、申诉解封 如果您认为自己的微信公众号并没有违反微信公众平台的相关规定,可以通过申请解封来恢复账号。具体方法如下: 进入微信公众平台的官方申诉页面,填写相关信息并提交申诉材料。 等…

    other 2023年6月26日
    00
  • C语言之单链表的插入、删除与查找

    C语言中单链表的插入、删除与查找是单链表操作中的基本操作。下面将对这三种操作进行详细讲解。 单链表基本知识 在讲解单链表的操作前,我们先来复习一下单链表的基本概念。单链表是一种链式存储结构,由若干个节点构成。每个节点由数据域和指针域组成,指针域指向下一个节点。单链表有一个头节点,头节点不存储实际的数据,其指针域指向第一个有效节点。 插入操作 单链表插入操作是…

    other 2023年6月27日
    00
  • Java访问Hadoop分布式文件系统HDFS的配置说明

    下面就是Java访问Hadoop分布式文件系统HDFS的配置说明的完整攻略。 配置说明 步骤一:Hadoop环境准备 在Java项目中使用HDFS时需要引入Hadoop的相关jar包,推荐使用Apache的Maven来管理jar包依赖。Maven会自动下载并添加依赖的jar包。 步骤二:配置HDFS连接参数 在Java程序中连接HDFS需要指定HDFS的连接…

    other 2023年6月25日
    00
  • Lua中全局变量与非全局环境介绍

    Lua中全局变量与非全局环境介绍 在Lua中,全局变量是在全局环境中定义的变量,可以在程序的任何地方访问。非全局环境是指在特定的作用域中定义的变量,只能在该作用域内访问。 全局变量 全局变量在程序中具有全局范围,可以在任何地方访问。在Lua中,全局变量的定义不需要使用关键字,直接给变量赋值即可。例如: — 定义全局变量 myVariable = 10 –…

    other 2023年7月29日
    00
  • 开机显示英文:find –set-root…不能正常进入系统的解决方法

    针对“开机显示英文:find –set-root…不能正常进入系统的解决方法”,下面是详细的攻略。 问题描述 如果在开机启动时遇到以下英文提示: find –set-root –ignore-floppies /bootmgr Error 15: File not found Press any key to continue… 这表示系统没有找到…

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