【问题标题】: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;
}

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

【问题讨论】:

    标签: c++ priority-queue


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 2015-10-05
      • 2011-12-20
      • 1970-01-01
      相关资源
      最近更新 更多