优先队列不打印推入其中的值[关闭]
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 (自定义标记法 + 优先队列)