都这个点,虽然很想回去,还是坚持下来写写总结,不然之前的努力就都白费了。
1、栈
加上“stack”的头文件,常用的函数有:
stack<int>p;
p.top();p.size();p.empty();p.push();p.pop();
2、队列
加上<queue>的头文件,常用的函数有:
queue<int>q;
q.front();q.back();p.size();p.empty();p.push();p.pop();
队列中有个特殊的地方,优先队列 priority_queue;
priority_queue<int>q;
自定义优先级:
struct cmp
{
operator bool ()(int x, int y)
{
return x > y; // x小的优先级高
//也可以写成其他方式,如: return p[x] > p[y];表示p[i]小的优先级高
}
};
priority_queue<int, vector<int>, cmp>q;//定义方法
结构体的优先级定义:
struct node
{
int x, y;
friend bool operator < (node a, node b)
{
return a.x > b.x; //结构体中,x小的优先级高
}
};
priority_queue<node>q;//定义方法