Open In App

Does STL priority queue allow duplicate values?

Yes, in C++ priority_queue, we may have duplicate values.




// C++ program to demonstrate that duplicate
// values are allowed in a priority queue
// (with maximum value at the top)
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    priority_queue<int> pq;
    pq.push(30);
    pq.push(5);
    pq.push(30);
    cout << pq.top() << " ";
    pq.pop();
    cout << pq.top() << " ";
    pq.pop();
    return 0;
}

Output:
30 30




// C++ program to demonstrate that duplicate
// values are allowed in a priority queue
// (with minimum value at the top)
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
    priority_queue<int> pq;
    pq.push(5);
    pq.push(5);
    pq.push(5);
    cout << pq.top() << " ";
    pq.pop();
    cout << pq.top() << " ";
    pq.pop();
    cout << pq.top() << " ";
    pq.pop();
    return 0;
}

Output:
5 5 5

Article Tags :