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

#include <list>

  • 头尾的添加移除操作
    list.push_back(elem); //在容器尾部加入一个元素
    list.pop_back(); //删除容器中最后一个元素
    list.push_front(elem); //在容器开头插入一个元素
    list.pop_front(); //从容器开头移除第一个元素
  • 数据存取
    list.front(); //返回第一个元素。
    list.back(); //返回最后一个元素。
  • 与迭代器
    list.begin(); //返回容器中第一个元素的迭代器。
    list.end(); //返回容器中最后一个元素之后的迭代器。
    list.rbegin(); //返回容器中倒数第一个元素的迭代器。
    list.rend(); //返回容器中倒数最后一个元素的后面的迭代器。
  • 对象的带参数构造
    list(beg,end); //构造函数将[beg, end)区间中的元素拷贝给本身。注意该区间是左闭右开的区间。
    list(n,elem); //构造函数将n个elem拷贝给本身。
    list(const list &lst); //拷贝构造函数。
  • 赋值操作
    list.assign(beg,end); //将[beg, end)区间中的数据拷贝赋值给本身。注意该区间是左闭右开的区间。
    list.assign(n,elem); //将n个elem拷贝赋值给本身。
    list& operator=(const list &lst); //重载等号操作符
    list.swap(lst); //将lst与本身的元素互换。
  • 大小
    list.size(); //返回容器中元素的个数
    list.empty(); //判断容器是否为空
    list.resize(num); //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
    list.resize(num, elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
  • 插入元素
    list.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置。
    list.insert(pos,n,elem); //在pos位置插入n个elem数据,无返回值。
    list.insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据,无返回值。
  • 删除元素
    list.clear(); //移除容器的所有数据
    list.erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置。
    list.erase(pos); //删除pos位置的数据,返回下一个数据的位置。
    lst.remove(elem); //删除容器中所有与elem值匹配的元素。
  • 反序排列
    lst.reverse(); //反转链表
void PrintL(list<int> &l)
{for (list<int>::iterator it = l.begin(); it != l.end();it++){cout << *it << " ";}cout << endl;
}list < int> l;
for (int i = 0; i < 10;i++)
{l.push_back(i + 1);
}
cout << "list的大小:" << l.size() << endl;//输出
list<int>::iterator it = l.begin();while (it != l.end())
{cout << *it << " ";it++;
}
cout << endl;//list不能随机访问
it = l.begin();
it++;
it++;//it = it + 2;不支持随机访问容器//插入
l.insert(it, -1);
PrintL(l);

c++中list用法相关推荐

  1. c++中static_cast用法与uchar/char的区别

    1.c++中static_cast用法 static_cast是指显性类型强制转换,如: int a = static_cast<int>(120.34); 结果为a= 120. 和C语言 ...

  2. 简单介绍Python中异常处理用法

    这篇文章主要给大家分享的是 Python中异常处理用法,为了保证程序的健壮性与容错性,即在遇到错误时候程序不会崩溃,我们需要对异常进行处理,下面来看看文章对此的用法,需要的朋友可以参考一下 为了保证程 ...

  3. 关于OpenCV中常见函数用法总结

    关于OpenCV中常见函数用法总结 一 一般Mat的赋值操作 二 求Mat中的最大值以及最小值 三 randn()函数给图像添加高斯噪声 四 mean()函数的用法 五 系统计时器 六 矩阵之间的四则 ...

  4. java中import用法

    java中import用法 单类型导入(single-type-import),例如import java.io.File; 按需类型导入(type-import-on-demand),例如 impo ...

  5. 一个线程中lock用法的经典实例

    1 /* 2 该实例是一个线程中lock用法的经典实例,使得到的balance不会为负数 3 同时初始化十个线程,启动十个,但由于加锁,能够启动调用WithDraw方法的可能只能是其中几个 4 作者: ...

  6. 几个比较好用的Windows API在C#中的用法。

    几个比较好用的Windows API在C#中的用法. #region Windows Api 定义 ///   /// 模拟鼠标事件   ///   /// 鼠标事件的Enum   /// X座标   ...

  7. python管道界面_python中管道用法入门实例

    本文实例讲述了python中管道用法.分享给大家供大家参考.具体如下: #!coding=utf-8 import multiprocessing def consumer(pipe): output ...

  8. MVC中HtmlHelper用法大全

    MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...

  9. mysql raiserror_RAISERROR在SQL Server数据库中的用法

    raiserror  是由单词 raise error 组成 raise  增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ser ...

  10. 查询前几条记录SQL在不同数据库中的用法

    13,(1)查询前几条记录SQL在不同数据库中的用法; 1. ORACLE SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. INFORMIX SELECT FIR ...

最新文章

  1. 大火的Apache Spark也有诸多不完美
  2. BeanUtils.copyProperties VS PropertyUtils.copyProperties
  3. 200721学习日报
  4. linux 自带 mysql,linux下安装mysql
  5. Mysql drop table 原理_mysql事务的实现原理
  6. 函数分离常数法 oracle,2009届高三数学第一轮复习课件:函数(最新)幻灯片
  7. mysql建立唯一索引升序_MySQL数据库SQL优化技巧六之唯一索引
  8. 黑龙江大学计算机科学技术学院软件学院青年志愿,计算机科学技术学院、软件学院青年志愿者协会2017年暑期三下乡宣誓大会...
  9. 制作分页工具类,实现分页操作JSP+Servlet+数据库
  10. 简单使用pdf插件pdf.js
  11. 使用js打印日历在控制台
  12. Scala学习笔记(三)类层级和特质
  13. mysql 段错误 (core dumped)_CentOS yum 段错误 (core dumped)解决办法
  14. 好友克隆自助下单网站_可口可乐的成功可以这样复制!
  15. 非科班基础知识三座大山:网络,操作系统,数据库
  16. ShaderJoy —— 用 Shader 绘制一只可爱的 “小挠斧” (详细版)【GLSL】
  17. 苹果A14和高通骁龙888性能对比,A13都笑了
  18. 抽象类和接口不能直接实例?
  19. veins安装及运行笔记
  20. 小孔成像总结_每天一个小实验|小孔成像

热门文章

  1. 启动hadoop遇到的datanode启动不了
  2. HttpwebRequest - 带ViewState的网页POST请求
  3. Intel开发工具之VTune
  4. ArcGIS:ArcToolBox工具使用——提取DEM/DSM中的高程点
  5. Linux下设置python脚本文件为服务
  6. Ng第一课:引言(Introduction)
  7. 【转】wpa_supplicant与wpa_cli之间通信过程
  8. 轻量级数据库sqlite的编译
  9. 笔记--Spring in action
  10. [转]asp.net 动态添加多附件上传