优先队列不打印推入其中的值[关闭]

Posted

技术标签:

【中文标题】优先队列不打印推入其中的值[关闭]【英文标题】:Priority Queue not printing the values pushed into it [closed] 【发布时间】:2021-12-25 11:55:59 【问题描述】:

我刚开始使用数据结构,偶然发现了优先级队列,我编写了一个简单的程序来打印我推送到队列中的值,但它不会打印任何内容。

#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;

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于优先队列不打印推入其中的值[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将元素推入优先级队列时,二进制表达式的操作数无效

在排序优先级队列整数时遇到问题[关闭]

(c++)迷宫自动寻路-队列-广度优先算法-附带寻路打印动画

Printer Queue,UVa 12100 (自定义标记法 + 优先队列)

Printer Queue,UVa 12100 (自定义标记法 + 优先队列)

UVA 12100 打印队列(STL deque)