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

相关文章

  • img格式镜像转iso格式

    img格式镜像转iso格式 当你下载到一张.img格式的系统镜像,而你需要将其烧录为光盘或者制作成启动U盘,那么你就需要将其转换为ISO格式。本文将介绍如何将.img格式的镜像文件转换成标准的.iso格式。 安装相关软件 首先,我们需要安装 “geteltorito” 这个软件,它是一个非常小巧的命令行工具,专注于将.img文件转为.iso格式文件。在Deb…

    其他 2023年3月29日
    00
  • Node.js path模块,获取文件后缀名操作

    Node.js path模块:获取文件后缀名操作攻略 Node.js的path模块提供了一些用于处理文件路径的实用工具函数。其中之一是获取文件后缀名的操作。下面是详细的攻略,包含两个示例说明。 步骤1:导入path模块 首先,我们需要在Node.js脚本中导入path模块。可以使用以下代码完成导入: const path = require(‘path’);…

    other 2023年8月5日
    00
  • Android控件RadioButton的使用方法

    Android控件RadioButton的使用方法 介绍 RadioButton是Android平台上的一种单选按钮控件,它的作用是让用户单选一个选项。在用户需要从多个选项中选择一个时,我们可以使用RadioButton控件。 RadioButton控件是基于CheckBox控件的,可以理解为是CheckBox控件的单选版本。相较于CheckBox控件,Ra…

    other 2023年6月26日
    00
  • 魔兽世界7.3武器战圣物搭配 wow7.3wqz最佳圣物特质选择优先级

    魔兽世界7.3武器战圣物搭配攻略 随着7.3版本的到来,武器战士的圣物装备也有了新变化。为了优化输出效率,正确的圣物搭配和特质选择非常重要。本篇攻略将详细介绍如何搭配武器圣物和选择特质。 1. 圣物搭配 在7.3版本中,武器战士的圣物搭配中应该优先选择以下属性: 狂击伤害:提高狂击的伤害,这也是武器战最重要的输出技能之一。 爆击:提高爆击时的伤害。 急速:提…

    other 2023年6月27日
    00
  • @Autowired注解注入的xxxMapper报错问题及解决

    以下是解决@Autowired注解注入的xxxMapper报错问题的完整攻略: 确保xxxMapper被正确注解为@Mapper: 在xxxMapper接口上添加@Mapper注解,标识该接口为Mapper接口。 示例代码: java @Mapper public interface XxxMapper { // Mapper接口的方法定义 } 确保xxxM…

    other 2023年10月14日
    00
  • Android Studio简单实现自定义日历

    下面是“Android Studio简单实现自定义日历”的完整攻略。 准备工作 确定日历的基本布局,包括月、日、周等信息的显示位置; 寻找相关的开源库,例如MaterialCalendarView; 配置依赖关系,将MaterialCalendarView引入到Android Studio的项目中。 实现步骤 步骤1:布局文件 首先,需要在布局文件中设置好日…

    other 2023年6月25日
    00
  • Android获取应用程序大小的方法

    获取Android应用程序的大小是对应用进行管理和优化的重要措施之一。本文将介绍两个方法,分别是使用PackageManager获取应用程序大小和使用File类获取应用程序大小。 通过PackageManager获取应用程序大小 PackageManager是Android应用程序管理的核心组件之一。可以通过PackageManager获取应用程序的版本、包…

    other 2023年6月25日
    00
  • 详解Spring中bean实例化的三种方式

    在这里我会详细讲解Spring中bean实例化的三种方式,涉及到XML配置、注解以及Java配置。 XML配置方式 定义bean 我们可以通过在Spring的XML配置文件中定义一个节点来创建一个bean。其中,id表示该bean在Spring容器中的标识,class表示该bean的类型。例如: <bean id="person" …

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