The sample code below illustrates how to use the priority_queue::push, pop, empty,
and top
STL functions in Visual C++.
Required Header:
<queue>
priority_queue::push();
priority_queue::pop();
priority_queue::empty();
priority_queue::top();
priority_queue::size();
Note: The class/parameter names in the prototype do not match the version in the header file. Some have been modified to improve readability.
Description:
The sample shows priority_queue implementation using deque and vector containers.
Sample Code:
//////////////////////////////////////////////////////////////////////
//
// Compile options needed: /GX
//
// <filename> : priority_queue.cpp
//
// Functions:
//
// priority_queue::push(), priority_queue::pop(),
// priority_queue::empty(), priority_queue::top(), queue::size()
//
//////////////////////////////////////////////////////////////////////
#include <iostream>
#include <queue>
#include <deque>
#include <vector>
#include <functional>
using namespace std ;
// Using priority_queue with deque
// Use of function greater sorts the items in ascending order
typedef deque<int> INTDQU;
typedef priority_queue<int> INTPRQUE;
// Using priority_queue with vector
// Use of function less sorts the items in descending order
typedef vector<char> CHVECTOR;
typedef priority_queue<char> CHPRQUE;
void main(void)
{
int size_q;
INTPRQUE q;
CHPRQUE p;
// Insert items in the priority_queue(uses deque)
q.push(42);
q.push(100);
q.push(49);
q.push(201);
Program Output is:
// Output the size of priority_queue
size_q = q.size();
cout << "size of q is:" << size_q << endl;
// Output items in priority_queue using top()
// and use pop() to get to next item until
// priority_queue is empty
while (!q.empty())
{
cout << q.top() << endl;
q.pop();
}
// Insert items in the priority_queue(uses vector)
p.push('c');
p.push('a');
p.push('d');
p.push('m');
p.push('h');
// Output the item at the top using top()
cout << p.top() << endl;
// Output the size of priority_queue
size_q = p.size();
cout << "size of p is:" << size_q << endl;
// Output items in priority_queue using top()
// and use pop() to get to next item until
// priority_queue is empty
while (!p.empty())
{
cout << p.top() << endl;
p.pop();
}
}
Program Output:
42
size of q is:4
42
49
100
201
m
size of p is:5
m
h
d
c
a