1.Vector:向量
head:#include<vector>
define:vector<要储存的数据类型>(数组长度,初始值)
例如:vector<vector<int>>(60,vector<60,60>) //二维数组
内含成员函数:
pop后删,即删除数组的最后一个元素a.pop();
pushback尾接,即在数组最后插入一个元素:a.pushback(3);
clear清空,即清空数组a.clear();
empty判空,bool类返回是否为空,a.empty();
resize改长度,默认为0,a.resize(长度,默认值)
back尾元素,即返回数组的最后一个元素,a.back();
size范围,即返回数组的大小,a.size();
2.stack栈//注:有提到的函数不会再提到第二次在下面
特点:先进后出
STACK无法访问中间变量,a[i]是不被允许的
head:#include<stack>
define:同vector
内含成员函数:
push,即在数据头部插入一个元素,a.push();
top,即返回数组的第一个元素,a.top();
pop,删除头部的第一个元素,a.pop();
3.queue队列
特点:先进先出,无法访问中间变量,a[i]是不被允许的
内含成员函数:
front:取队首,a.front();
back:取队尾,a.back();
pop,push:同stack
4.priority_queue堆,优先队列
特点:控制最大,最小元素,无法访问中间变量,a[i]是不被允许的,但是可以修改最大最小元素
内含成员函数:
define:priority_queue<typename>a;//大顶堆,控制最大数
define:priority_queue<typename,vector<typename>,greater<typename>>a;//小顶堆,控制最小数
pop,push,top:同queue
5.set,multiset,unordered_set集合
特点:1去重2排序
3元素是否出现过
4无法用下标,如a[0]
5只读
6.不可用迭代器计算下标
要素 | 解释 | set | multiset | unordered_set |
确定性 | 一个元素要么在集合中,要么不在 | t | t | t |
互异性 | 一个元素仅可出现一次 | t | f | t |
无序性 | 没有顺序 | f | f | t |
内含成员函数:
insert:插入,a.insert(值);
erase擦除,即删除元素,a.erase(值)
find查找,即查找某一个元素,a.find(值),返回迭代器
count个数,查找某一个元素有几个,a.count(值);
遍历:
for(set<int>::iterator i=a.begin();i!=a.end();++i)
cout<<*i<<'\n';
基于范围
for(int &ele:a)
cout<<ele<<'\n';
7.map映射
map<typenamex,typenamey,cmp>a;
初始值为0;
a[x]=y;
性质 | 解释 | map | multimap | unordered_map |
互异性 | 一个键(x)只在映射中出现一次 | t | f | t |
无序性 | 键(x)是无序的 | f | f | t |
内含成员函数:
同vector:a[1]=1;
同set:a.find(x(键)),count
遍历:
for(map<int,int>::iterator i=a.begin();i!=a.end();++i)
cout<<*i->first<<'\n';
for(int &ele:a)
cout<<ele.first<<'\n';