C++的STL库常用API--list

2023-10-27

list的简介

list是一个双向链表容器,可高效地进行插入删除元素。
list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。

list使用之前的准备

#include <list>  
using namespace std;

list对象的默认构造

  • list采用模板类实现,list对象的默认构造形式:list lstT; 如:
  • list<int> lstInt; //定义一个存放int的list容器。
  • list<float> lstFloat; //定义一个存放float的list容器。
    *list<string> lstString; //定义一个存放string的list容器。

    //尖括号内还可以设置指针类型或自定义类型。

list头尾的添加移除操作

  • list.push_back(elem); //在容器尾部加入一个元素
  • list.pop_back(); //删除容器中最后一个元素
  • list.push_front(elem); //在容器开头插入一个元素
  • list.pop_front(); //从容器开头移除第一个元素

list的数据存取

  • list.front(); //返回第一个元素。
  • list.back(); //返回最后一个元素。

list与迭代器

  • list.begin(); //返回容器中第一个元素的迭代器。
  • list.end(); //返回容器中最后一个元素之后的迭代器。
  • list.rbegin(); //返回容器中倒数第一个元素的迭代器。
  • list.rend(); //返回容器中倒数最后一个元素的后面的迭代器。

list对象的带参数构造

  • list(beg,end); //构造函数将[beg, end)区间中的元素拷贝给本身。注意该区间是左闭右开的区间。
  • list(n,elem); //构造函数将n个elem拷贝给本身。
  • list(const list &lst); //拷贝构造函数。

list的赋值

  • list.assign(beg,end); //将[beg, end)区间中的数据拷贝赋值给本身。注意该区间是左闭右开的区间。
  • list.assign(n,elem); //将n个elem拷贝赋值给本身。
  • list& operator=(const list &lst); //重载等号操作符
  • list.swap(lst); // 将lst与本身的元素互换。

list的大小

  • list.size(); //返回容器中元素的个数
  • list.empty(); //判断容器是否为空
  • list.resize(num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
  • list.resize(num, elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。

list的插入

  • list.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置。
  • list.insert(pos,n,elem); //在pos位置插入n个elem数据,无返回值。
  • list.insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据,无返回值。

list的删除

  • list.clear(); //移除容器的所有数据
  • list.erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置。
  • list.erase(pos); //删除pos位置的数据,返回下一个数据的位置。
  • lst.remove(elem); //删除容器中所有与elem值匹配的元素。

list的反序排列

  • lst.reverse(); //反转链表,比如lst包含1,3,5元素,运行此方法后,lst就包含5,3,1元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++的STL库常用API--list 的相关文章

随机推荐

  • 2.8 C++ 友元机制 2.9 运算符重载

    书接上回 对类内的 非 静态成员函数 定义了指针 那么 通过这两种指针来调用这两个函数 应该写法如下 include
  • Opencascade 1:在win10上编译Opencascade

    Opencascade 1 在win10上编译Opencascade 提示 超简单的Opencascade安装编译方法 注意 本文是学习了AAA的视频后的总结思考 文章目录 Opencascade 1 在win10上编译Opencascad
  • 【故障解决】Linux机器经常会出现ipv6无法访问自己网关,要重启机器才可以修复问题。-20201119

    1 故障现象 有几台业务虚机 经常会出现ipv6无法访问自己网关 要重启机器才可以修复 2 解决过程 虚拟化层排查下来 虚拟化平台 宿主机 网络负载 没看出什么问题 但查看故障机器系统日志 var log messages里的信息 发现一直
  • 上线这么久的InsCode,你们用过了嘛?(内含源码)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 3
  • vtkImageData算法坐标计算取整处理

    医学影像处理项目中 处理vtkImageData数据时经常涉及到一类问题 给了一个空间坐标或者位置 如何计算对应像素索引或者距离 从原理上 是这样一个公式 pixel num floor postion1 postion0 spacing
  • 大型企业IT运维的特点(18年7月)

    大型企业的IT系统一般都是流程设计复杂 用户会有较多的抱怨 不好用 变更太频繁 这样的现象 主要原因是在大型企业里面 业务以管理和控制为主 控制节点多 必然会让大家感到复杂 首先问一个问题 不要流程 可不可以 当然不可以 公司就是 流程 执
  • 【Qt】QtCreator中『设计』按钮是灰色的怎么办?

    在QtCreator中 对于xxx qml xxx ui qml文件都是可以通过 设计 打开的 只是xxx qml很多时候是没有任何2D或者3D显示效果的 但是如果在新安装QtCreator的时候没有安装对应插件 xxx qml xxx u
  • 青春有你-Java基础篇(2.5)

    Java基础篇 2 5 2 Java基础知识 泛型 泛型与继承 类型擦除 泛型中 KTVE object 等的含义 泛型各种用法 List lt Object gt List
  • 【教程】支持WebDAV的网盘TeraCloud+Zotero同步应用

    目录 0 TeraCloud网盘简介 1 注册操作步骤 2 开启WebDAV 3 WebDAV应用举例 Zotero文献管理软件 4 总结 0 TeraCloud网盘简介 TeraCloud是一个日本品牌的网盘 支持WebDAV 这极大地方
  • RIDE屏蔽INFO级别的日志输出

    RIDE屏蔽INFO级别的日志输出 最近参与自动化测试项目 项目测试内容包括软硬件 内容较复杂 每执行一个测试用例就输出了数万条INFO类型日志 严重影响测试人员查看日志 也影响了用例执行速度 因此需要减少不必要的日志输出 粗略看了一下 修
  • 在线作答编程——输入输出测试

    在线作答编程 输入输出测试 进行了总结 转载请注明链接 有问题请及时联系博主 Alliswell WP 问题描述 在线作答编程 需要自己处理输入输出 建议你进行在线oj输入输出练习 https ac nowcoder com acm con
  • 列举做副业月入3W+的公众号大佬

    3分享一些我平时关注的优秀号主 由深耕技术多年的老兵运营 与你分享技术干货 成长经验 很多时候大家不是不努力 而是缺乏对应的学习方法 以及高手指点 这些公众号也有很多干货资料 帮助你学习 表哥有话讲 国内最大的数据从业者分享平台 20W程序
  • 分析我关于路由协议的一些技术感想

    1 OSPF是在IP包里的 五种不同类型的OSPF包 Hello LSR LSU LSAck DD 又是由再进一层的ospf packetheader进行区分的 ABR一般都会有一个接口在Area0中 且对于不同的Area有不同的LSDB
  • “跨国视频造假窝点”曝光!这个大规模数据集,帮AI揪出99%换脸视频

    乾明 郭一璞 发自 凹非寺 量子位 报道 公众号 QbitAI 上回说到 奥巴马deepfake怼川普 斯嘉丽怒斥网友假视频 deepfake 视频造假神器 把一个人的脸庞 转移到另一个的身上 让假新闻轻松传播到全网 这下 不管是政要还是明
  • nginx基础学习(七):nginx+keepalived搭建主备nginx高可用服务

    目前最后一篇关于nginx的文章 这篇文章是做一个知识的了解 在实际生产中基本不使用 因为这种方式有更好的替代方案 但是为什么要说一下呢 面试的时候问到nginx的内容肯定都会问关于nginx的宕机问题 然后如何去防治 提高nginx服务的
  • unity三种图片格式

    本文转载自 http blog csdn net caption deng article details 52366907 ARGB 是一种色彩模式 也就是RGB色彩模式附加上Alpha 透明度 通道 常见于32位位图的存储结构 RGB
  • 爬虫基础—Session和Cookie

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 若身在泥潭 心也在泥潭 则满眼望去均是泥潭 若身在泥潭 而心系鲲鹏 则能见九万里天地 文章目录 第1章
  • 系统架构设计师-软件架构设计(1)

    目录 一 软件架构的概念 1 架构的本质 2 架构的作用 二 架构发展历史 三 架构的 4 1 视图 1 逻辑视图 Logical View 2 开发视图 Development View 3 进程视图 Process View 4 物理视
  • 2023年26家大厂Java面试题整理了360道(分布式+微服务+高并发)

    前言 2023年的金三银四还有不到1个月的时间就结束了 这两个月 你收获了多少 前段时间一直有粉丝问我 有没有今年一些大厂Java面试题总结 最新抽时间整理了一些 分享给大家 大家一起共享学习 由于文章太长 有些解析没有详细列出 文末有获取
  • C++的STL库常用API--list

    list的简介 list是一个双向链表容器 可高效地进行插入删除元素 list不可以随机存取元素 所以不支持at pos 函数与 操作符 list使用之前的准备 include