STL中,sort的默认排序为less,也就是说从小到大排序;priority_queue默认是less,也就说大顶堆;map默认是less,也就说用迭代器迭代的时候默认是小的排在前面;set默认是less,也就是说用迭代器迭代的时候是从小到大排序的。
栈和队列的区别是啥? 吃多了拉就是队列,吃多了吐就是栈
栈(stack)又名堆栈,它是一种运算受限的线性表。其限
制是仅允许在表的一端进行插入和删除运算。这一端被称为
栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又
称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上
面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈
或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的
栈顶元素。
sta.push();
que.push();
que.pop();
sta.pop();
sta.top();
que.front();
que.empty(); 若队列里空了返回1
sta.empty(); 若栈里空了返回1
栈和队列的清空
while(!que.empty()) que.pop();
while(!sta.empty()) sta.pop();
我们知道了队列是先进先出,那么优先队列则不一样了,进
的顺序不能决定出的顺序,优先队列出的顺序是按照自己设
置的优先等级来出队列的,如果自己不设置优先级的话,默
认优先级为越大优先级越高。
sort默认为从小到大排序,优先队列默认为从大到小。
优先队列代码
priority_queue <int> que;
que.push();
que.pop();
que.top(); 注意是top
que.empty();
优先级的设置
int 型
priority_queue <int,vector <int>,greater <int> >que; 最后> >之间要有空格 ,greater是小的做top
priority_queue <int,vector <int>,less<int> >que; less是大的做top
//栈sta.top()
//队列que.front()
//优先队列q.top()
#include<stdio.h>
#include<