优先队列不打印推入其中的值

Priority Queue not printing the values pushed into it

我刚开始学习数据结构,偶然发现了优先级队列,我写了一个简单的程序来打印我在队列中推送的值,但它不会打印任何东西。

#include<iostream>
#include <queue>

using namespace std;

int main(){
    priority_queue<int> maxi;
    priority_queue<int, vector<int>, greater<int>> mini;

    int m = maxi.size();
    int n = mini.size();


    maxi.push(1);
    maxi.push(3);
    maxi.push(2);
    maxi.push(5);
    maxi.push(0);
    
    cout<<"Max size->"<<maxi.size()<<endl;
    for(int i=0; i<m; i++){
        cout<<maxi.top()<<" ";
        maxi.pop();
    }cout<<endl;

    mini.push(1);
    mini.push(3);
    mini.push(2);
    mini.push(5);
    mini.push(0);

    cout<<"Mini size->"<<mini.size()<<endl;
    for(int j=0; j<n; j++){
        cout<<mini.top()<<" ";
        mini.pop();
    }cout<<endl;
}

我已经阅读了很多文章,但似乎没有发现任何错误。即使编译器也没有给出任何错误。

在向它们添加元素之前,您正在获取 maxi 和 mini 的大小。由于您正在复制大小的值(解释为 here),因此在将元素添加到容器时不会更新它。因此你的循环根本没有执行。