头文件queue主要包括循环队列queue和优先队列priority_queue两个容器。

    声明:

    1. #include <iostream>
    2. #include <queue>
    3. #include <vector>
    4. using namespace std;
    5. struct air {
    6. int x, y;
    7. bool operator< (const air& t) const {
    8. return y < t.y;
    9. }
    10. };
    11. int main() {
    12. queue<int> a;
    13. queue<air> b;
    14. priority_queue<int> c; // 默认为大根堆
    15. priority_queue<air> e; // 大根堆,得重载<
    16. priority_queue<air, vector<air>, greater<air>> d; // 小根堆得重载>
    17. e.push({1, 2});
    18. e.push({2, 1});
    19. e.push({3, 0});
    20. cout << e.top().x << " " << e.top().y << endl;
    21. e.pop();
    22. cout << e.top().x << " " << e.top().y << endl;
    23. return 0;
    24. }

    使用优先队列时,默认是大根堆,自定义结构体或类必须重载<
    如果使用小根堆形式,自定义结构体或类必须重载>

    push() 从队尾插入
    pop() 弹出队头元素
    top() 返回队头元素

    :::danger 队列,优先队列,栈没有clear() :::