c++中list用法
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用法相关推荐
- c++中static_cast用法与uchar/char的区别
1.c++中static_cast用法 static_cast是指显性类型强制转换,如: int a = static_cast<int>(120.34); 结果为a= 120. 和C语言 ...
- 简单介绍Python中异常处理用法
这篇文章主要给大家分享的是 Python中异常处理用法,为了保证程序的健壮性与容错性,即在遇到错误时候程序不会崩溃,我们需要对异常进行处理,下面来看看文章对此的用法,需要的朋友可以参考一下 为了保证程 ...
- 关于OpenCV中常见函数用法总结
关于OpenCV中常见函数用法总结 一 一般Mat的赋值操作 二 求Mat中的最大值以及最小值 三 randn()函数给图像添加高斯噪声 四 mean()函数的用法 五 系统计时器 六 矩阵之间的四则 ...
- java中import用法
java中import用法 单类型导入(single-type-import),例如import java.io.File; 按需类型导入(type-import-on-demand),例如 impo ...
- 一个线程中lock用法的经典实例
1 /* 2 该实例是一个线程中lock用法的经典实例,使得到的balance不会为负数 3 同时初始化十个线程,启动十个,但由于加锁,能够启动调用WithDraw方法的可能只能是其中几个 4 作者: ...
- 几个比较好用的Windows API在C#中的用法。
几个比较好用的Windows API在C#中的用法. #region Windows Api 定义 /// /// 模拟鼠标事件 /// /// 鼠标事件的Enum /// X座标 ...
- python管道界面_python中管道用法入门实例
本文实例讲述了python中管道用法.分享给大家供大家参考.具体如下: #!coding=utf-8 import multiprocessing def consumer(pipe): output ...
- MVC中HtmlHelper用法大全
MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...
- mysql raiserror_RAISERROR在SQL Server数据库中的用法
raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ser ...
- 查询前几条记录SQL在不同数据库中的用法
13,(1)查询前几条记录SQL在不同数据库中的用法; 1. ORACLE SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. INFORMIX SELECT FIR ...
最新文章
- 大火的Apache Spark也有诸多不完美
- BeanUtils.copyProperties VS PropertyUtils.copyProperties
- 200721学习日报
- linux 自带 mysql,linux下安装mysql
- Mysql drop table 原理_mysql事务的实现原理
- 函数分离常数法 oracle,2009届高三数学第一轮复习课件:函数(最新)幻灯片
- mysql建立唯一索引升序_MySQL数据库SQL优化技巧六之唯一索引
- 黑龙江大学计算机科学技术学院软件学院青年志愿,计算机科学技术学院、软件学院青年志愿者协会2017年暑期三下乡宣誓大会...
- 制作分页工具类,实现分页操作JSP+Servlet+数据库
- 简单使用pdf插件pdf.js
- 使用js打印日历在控制台
- Scala学习笔记(三)类层级和特质
- mysql 段错误 (core dumped)_CentOS yum 段错误 (core dumped)解决办法
- 好友克隆自助下单网站_可口可乐的成功可以这样复制!
- 非科班基础知识三座大山:网络,操作系统,数据库
- ShaderJoy —— 用 Shader 绘制一只可爱的 “小挠斧” (详细版)【GLSL】
- 苹果A14和高通骁龙888性能对比,A13都笑了
- 抽象类和接口不能直接实例?
- veins安装及运行笔记
- 小孔成像总结_每天一个小实验|小孔成像