STL:
队列:
表达式 | 作用 |
---|
#include<queue> | 定义 |
queue<int>x | 定义一个int类型的队列,名为x |
x.push(y) | 从队列x的对尾插入y |
x.pop() | 队列x的队头出列 |
g=x.front() | g等于x的队头 |
h=x.back() | h等于x的队尾 |
x.size() | 队列x的长度 |
x.empty() | 判断x是否为空(空则true,非空则false) |
二叉堆
表达式 | 作用 |
---|
priority_queue< int >x | 定义一个int类型的大根二叉堆,名为x |
priority_queue <int, vector< int >, greater< int > > x | 定义一个int类型的小根二叉堆,名为x |
x.push(y) | 在大根二叉堆中插入y |
x.pop() | 删除x堆顶元素 |
sum=x.top() | sum是x堆的堆顶元素(最大值) |
各种操作:
struct rec
{
int a,b,c;
bool operator <(const rec &y) const
{
return a>y.a;
}
}sum;
int main()
{
priority_queue<rec>d;
d.push(sum);
rec h=d.top();
d.pop();
}
other
表达式 | 作用 |
---|
len=unique(a+1,a+1+n)-a-1 | 给a数组(1~n位)去重,把去重后的长度返回给len |
s=lower_bound(a+1,a+1+len,v)-a | 在a数组(1~len位)中查找大于等于v的第一个数,找到的位置返回给s |
map<下标,类型>x | 定义一个名为x的超大数组 |
map<pair<下标,下标>,类型>x | 定义一个名为x的超大二维数组 |