c++ STL 队列的使用(普通队列,双端队列,优先队列)

下列表格中带‘*’表示括号内无内容
否则括号内需要填要操作的元素
比如:

  • name.pop()
  • name.push(1)
名字 普通队列 双端队列 优先队列
头文件 #include <queue> #include<deque> #include <queue>
声明(DateType 为任意数据类型) queue<DateType> name deque<DateType> name priority_queue <DateType> name(默认从小到大排序)
取出队首的值* name.front() name.front()
name.back()
name.top()
弹出元素(删掉,不取值)* name.pop() name.pop_back()->弹出队尾name.pop_front()->弹出队首 name.pop()
存入元素 name.push name.push_back()->存入队尾name.push_front()->存入队首 name.push()
求队列中元素个数 name.size() name.size() name.size()

其中,优先队列还能够自定义优先级
这时我们可以传入一个比较函数

struct cmp{
    bool operator ()(int &a,int &b){
        return a<b;
    }
};

priority_queue<int, vector<int>,cmp > Queue;

其中

第二个参数为容器类型

第三个参数为比较函数

猜你喜欢

转载自blog.csdn.net/bestsort/article/details/81164599
今日推荐