C++ 顺序容器(vector,list、deque,stack,queue)
2024-08-26 12:29:26
顺序容器的种类有:vector,list、deque
顺序容器适配器:
stack //先进后出 栈
queue //先进先出 队列
priority_queue //也优先管理级的优先队列
1.头文件
#include <vector>
#include <list>
#include <deque> //每一种头文件对应一种顺序容器
#include <queue> //队列 优先队列的头文件
#include <stack> //栈的头文件
2.定义
vector<int>v;
list<string> l;
deque<struct Node>dq;
//容器类型<容器保存的数据类型>容器名称;
3.初始化 (以vector类型为例)
vector<T>v1; //创建一个空的容器
vector<T>v2(n,i); //创建一个vector容器 其中包括n个值为i的元素
vector<T>v3(v2); //创建一个v3 是v2的副本
vector<T>v4(n); //创建一个有初始化的元素的n个副本
vector<T>v5(v2.begin(),v2.end()-); //创建v5 值为索引的中间值
注意:在初始化时,不同类型的容器之间 不能进行值的初始化
注意容器的定义时 有一种特殊情况 看下面的代码“
vector< vector<int> >v3; //ok
vector<vector<int> >v4; //ok
vector<vector<int>>v5; //error
我们在写的时候 建议使用第一种写法 养成一个好的习惯
其实这第三种定义之所以不行 是因为它俩个>符号写在了一起 就会合成一个>>符号
4.迭代器的运算
所有迭代器都支持的运算
*iter //返回迭代器所指向的元素的引用
iter->name //获取迭代器指向元素中的name 容器中保持的是结构体 相等于(*iter).name.
iter++(--) //iter 加减
++(--)iter //和上面一样 只存在先加减和先运算的不同
iter1==(!=)iter2 //判断俩个迭代器所指 的元素是同一个
以下表图为string vector deque 类型迭代器支持的额外运算
注意:list容器只提供 上面所有迭代器都提供的运算 不能使用加减法与大小比较 (加减不同于自增自减)
最新文章
- webstorm ES6 转 ES5
- 16-阿里-intership
- 什么是OAuth授权?
- Linux 2.6 源码学习-内存管理-buddy算法
- android-exploitme(二):安装apk熟悉测试环境
- 开机自动播放音乐的vbs
- varchar 保存英文中文区别。
- 配置处理结果result
- T-SQL存储过程
- C++中的类继承(4)继承种类之单继承&;多继承&;菱形继承
- 乘法表(24.9.2017) (WARNING!!!!!!!!!!!)
- HttpServletRequest获取URL?后面的内容
- IE7下使用兼容Icon-Font CSS类
- java web(二): servlet的简单使用和介绍
- linux历史命令查找快捷方式
- 【Linux】排序命令sort
- MySQL基本操作命令
- IDEA下使用Maven的test命令乱码
- gl 绘制多边形的函数解析 分类: OpenGL(转)
- IntelliJ IDEA的安装和使用教程