欢迎来到endl的博客hhh☀☾☽♡♥

浏览器标题切换
把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

queue怎么用咧↓↓↓

queue(队列)

  • 定义:queue <int> a;

  • 插入队尾:a.push(x);

  • 查询队尾:a.back();

  • 查询队首:a.front();

  • 删除队首:a.pop();

  • 查询长度:a.size();

  • 判断队列为空:q.empty()

  • 清空只能慢慢pop

priority_queue(优先队列/堆)

基本操作:

q.empty()      

如果队列为空,则返回真

q.pop()    

删除对顶元素,删除第一个元素

q.push()        

加入一个元素

q.size()      

返回优先队列中拥有的元素个数

q.top()     

返回优先队列中有最高优先级的元素 在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数

声明方式:

priority_queue<int> q;     

//通过操作,按照元素从小到大的顺序出队 priority_queue<int,vector<int>, greater<int> > q;    

//通过操作,按照元素从大到小的顺序出队 (less<int>)

结构体声明方式:(和sort一样)

struct node {     
  int x, y;     
  bool operator < (const node &a)const
  {         
    return x > a.x;    //结构体中,x小的优先级高     
  }
};

priority_queue<node>q; //定义方法

//在该结构中,y为值, x为优先级。

//通过自定义operator<操作符来比较 元素中的优先级。

//在重载”<”时,最好不要重载”>”, 可能会发生编译错误

 

posted @ 2019-07-28 19:20  endl\n  阅读(298)  评论(0编辑  收藏  举报