-
万能头
打遍天下无敌手(除了vjudge)
#include<bits/stdc++.h>
-
通用函数(在以下STL容器中均适用)
size
返回容器的实际长度(元素个数)
empty
返回一个bool型,表示容器是非为空
-
vector
声明:
vector<int>
头文件:
Here
#include<vector>
一些函数:
clear
清空
迭代器与begin,end
参考以下代码
遍历vector并输出
for(int i=0;i<a.size();i++){
cout<<a[i]<<endl;
}
//或者
for(vector<int>::iterator it=a.begin();it!=a.end();it++){
cont<<*it<<endl;
}
front
返回vector第一个元素,等价于*a.begin()
或a[0]
back
返回vector最后一个元素,等价于*--a.end()
或a[a.size()-1]
push_back
在vector尾部插入元素
pop_back
删除vector尾部元素
附:用vector代替邻接链表
const int maxn=1e6+10;
vector<int> v[maxn],e[maxn];
void add(int x,int y,int z){//有向边存图
v[x].push_back(y);
e[x].push_back(z);
}
for(int i=0;i<v[x].size();i++){//遍历从x出发的所有有向边
int y=v[x][i],z=e[x][i];
}
-
队列
头文件:
Here
#include<queue>
#include<deque>
-
普通队列
声明:
queue<int>
一些函数:
push
从队尾入队
pop
从对头出队
front
返回队头元素
back
返回队尾元素
-
优先队列
声明:
Here
//升序队列,小顶堆
priority_queue <int,vector<int>,greater<int> > q;
//降序队列,大顶堆
priority_queue <int,vector<int>,less<int> >q;
//基础类型默认为大顶堆
priority_queue<int> a;
一些函数:
push
将元素插入堆
pop
删除堆顶元素
top
返回堆顶元素
-
双端队列
ps:双端队列支持随机访问
一些函数:
front
与 back
push_back
从队尾入队
push_front
从队头入队
pop_back
从队尾出队
pop_front
从队头出队