C++之标准库(STL)容器List的用法

2023-11-17

list说明
  • 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
  • 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域
  • List容器是一个双向链表。
  • 使用前需添加头文件
#include<list>
list定义
list<typename> l;   //typename表示链表中元素的类型可以是int、double等。
list使用


从上图可以看出链表两端都可以进行元素的操作。

list赋值操作
  • assign(beg, end); //将[beg, end)区间中的数据拷贝赋值给本身(把数组中的元素拷贝给链表)。
  • assign(n, elem); //将n个elem拷贝赋值给本身。
  • deque& operator=(const deque &deq); //重载等号操作符
  • swap(deq); // 将deq与本身的元素互换

例1:

//例1:assign(beg, end)
list<int> l;
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
l.assign(a, a + 6);
//例2:assign(n, elem)
list<int> l1;
l1.assign(3, 6);
//例4:swap(deq)
list<int> l2, l3;
l2.assign(3, 6);
l3.assign(4, 8);
l2.swap(l3)

运行结果:

1结果:1 2 3 4 5 62结果: 6 6 64结果: l2: 8 8 8 8   l3: 6 6 6
list数据元素插入和删除操作
push_back(elem);//在容器尾部加入一个元素
pop_back();//删除容器中最后一个元素
push_front(elem);//在容器开头插入一个元素
pop_front();//从容器开头移除第一个元素
insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。
clear();//移除容器的所有数据
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos);//删除pos位置的数据,返回下一个数据的位置。
remove(elem);//删除容器中所有与elem值匹配的元素。
list数据存取
front();//返回第一个元素。
back();//返回最后一个元素。
list大小操作
size();//返回容器中元素的个数
empty();//判断容器是否为空
resize(num);//重新指定容器的长度为num,
//若容器变长,则以默认值填充新位置。
//如果容器变短,则末尾超出容器长度的元素被删除。
resize(num, elem);//重新指定容器的长度为num,
//若容器变长,则以elem值填充新位置。
//如果容器变短,则末尾超出容器长度的元素被删除。
list反转排序
reverse();//反转链表,比如lst包含1,3,5元素,运行此方法后,lst就包含5,3,1元素。
sort(); //list排序
list访问

list<int> l;
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
l.assign(a, a + 6);	

//通过迭代器进行访问
list<int>::iterator;
for (auto it = l.begin(); it != l.end(); it++)
{
	cout << "元素:" << *it << endl;
}

结果:

1 2 3 4 5 6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++之标准库(STL)容器List的用法 的相关文章

随机推荐

  • python监听、操作键盘鼠标库pynput详细教程

    0 0 0 前言 监听 操作鼠标 键盘是实现自动化的捷径 比如我实现自动化签到用到了模拟键盘操作 pynput是监听 操控鼠标和键盘的跨平台第三方python库 你可以通过pip insnall pynput来安装 安装时会自动下载依赖库
  • 北京五棵松:你记忆中的后备箱夜市,来了!

    每个人 可能都有这么一段记忆 到了晚上的时候 我们约好了 来到了老地方 逛夜市 这是我们一贯的小爱好 同样是逛 但不同于逛商场 这里的人 这里的物 这里的景 都是生活的一部分 这里有熟悉的脸 也有陌生的脸 他们有的坐在小凳上 有的倚在墙上或
  • windows net user 添加用户

    文章目录 问题 net user 解决 问题 使用控制面板 设置 添加用户时 显示成这样 可能是因为 win10 家庭版的原因 net user 解决 以管理员身份运行 cmd 执行 net user user name password
  • ​微调神器 Finetuner,提升 CLIP 模型性能

    经证实 在海量的数据集上训练的大型神经网络模型可以完成一些之前被认为是AI领域亟待攻克的问题 例如 正确识别猫和袋鼠的图像一直都被看作非常困难的问题 但现在通过使用大型的神经网络模型已经可以很好地解决 然而 这些模型都是在类别广泛的数据集上
  • 基于Matlab的差分算法优化ANN数据预测

    基于Matlab的差分算法优化ANN数据预测 概述 人工神经网络 Artificial Neural Network ANN 是一种模拟生物神经系统工作机制的计算模型 具有强大的非线性建模和预测能力 然而 在ANN应用于数据预测问题时 常常
  • 负载平衡策略

    负载平衡软件解决方案有LVS HAProxy Nginx等 以Nginx为例负载均衡有以下几种策略 1 轮询 Round Robin 根据Nginx配置文件中的顺序 依次把客户端的web请求分发到不同的后端服务器 如果后端服务器down掉
  • 文件上传能通过ajax上传吗,通过ajax上传文件

    我使用2个文件index js upload php尝试通过ajax上传文件 img 如果成功追加到div uploadfile show 但是它不起作用 有几个问题 下面我的代码有什么建议吗 谢谢 upload php 1 form en
  • Vue脚手架的创建以及Eslint的解决

    1 创建脚手架 win R cmd 打开命令行窗口 运行下面代码 npm i g vue cli 2 cd Desktop 转到桌面 创建项目 vue create 项目名字 例如 vue create test 3 在自己写的项目中 出现
  • MD5加密及随机数生成

    今天贴两个简单的方法 需要的时候不用自己再写 public static String md5 String plaintext MessageDigest m try m MessageDigest getInstance MD5 m r
  • grafana 表格自动刷新

  • POSIX线程:API

    一 线程创建与取消 1 线程创建 1 1 线程与进程 相对进程而言 线程是一个更加接近于执行体的概念 它可以与同进程中的其他线程共享数据 但拥有自己的栈空间 拥有独立的执行序列 在串行程序基础上引入线程和进程是为了提高程序的并发度 从而提高
  • [数学]齐次线性方程组的解、SVD、最小二乘法

    AX 0 这是一个齐次线性方程组 一般的非齐次线性方程组AX b其实也都可以化为齐次方程组的形式 所以比较普遍 先要说明在非齐次方程组中 A到底有没有解析解 可以由增广矩阵来判断 r A
  • 颠覆人才市场?区块链凭什么?

    原创 点宽学园 作者 王启瑞 全文字数2509字 建议阅读时长 8 分钟 数字化平台包括 ABCD 四大核心技术 分别是人工智能 A Artificial Intelligence 区块链 B BlockChain 云计算 C Cloud
  • 我的学习体验是这样的,关于

    话说 完全没有想到 自己在知乎发布的第一篇文章 我在知乎学写作 竟然收获到还不错的互动 坦率地说 已经比我的微信公众号推文的效果好太多 我想 这主要是得益于大家对于知乎写作课本身的兴趣吧 到目前为止 虽然还没有修完知乎写作课的全部课程 但是
  • 浮点数在计算机中存储方式、十六进制(HEX)和浮点类型(float、double)转换

    目录 浮点数在计算机中存储方式 举例 8 25和120 5在内存中真正的存储方式 浮点类型转换为十六进制 方法1 用地址用指针 方法2 用共用体 方法3 使用memcpy 十六进制转换为浮点类型 浮点数在计算机中存储方式 https www
  • 多家支付机构停发代理商分润

    分润是POS代理推广的主要收入来源 一旦分润被掐断 意味着POS代理失去了赚钱的来源 近段时间以来 多家支付公司因停发POS代理分润在支付行业内引起了较大争议 涉及十几家支付公司 近日 多家支付公司代理商在公开投诉平台发帖投诉称 后台分润提
  • 详述Java中的异常

    我是目录 一 异常的解决方案 二 异常的基本用法 三 Java异常体系 四 自定义异常 五 面试阐述 所谓 异常 指的就是程序在 运行时 出现错误时通知调用者的一种机制 我们平时把 System out println 拼写错了 写成了 s
  • 第一章 pandas基础-练习题

    第一章 pandas基础 练习题 首先要导入对应的模块 import pandas as pd import numpy as np Ex1 口袋妖怪数据集 现有一份口袋妖怪的数据集 下面进行一些背景说明 代表全国图鉴编号 不同行存在相同数
  • QT基础(三)之添加资源文件及界面美化

    QT基础之添加资源文件及界面美化 QT可以做出非常炫酷的图形界面 通过添加一些资源文件可以对我们的界面进行美化 下面以添加图片资源 美化标签为例 对QT Creator添加资源文件进行学习 一 添加资源文件 1 给工程添加一个新的资源文件
  • C++之标准库(STL)容器List的用法

    文章目录 list说明 list定义 list使用 list赋值操作 list数据元素插入和删除操作 list数据存取 list大小操作 list反转排序 list访问 list说明 链表是一种物理存储单元上非连续 非顺序的存储结构 数据元