Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Illustrates how to use the priority_queue::push, priority_queue::pop, priority_queue::empty, priority_queue::top, and priority_queue::size Standard Template Library (STL) functions in Visual C++.
priority_queue::push( );
priority_queue::pop( );
priority_queue::empty( );
priority_queue::top( );
priority_queue::size( );
Remarks
Note
The class/parameter names in the prototype do not match the version in the header file. Some have been modified to improve readability.
The sample shows the priority_queue implementation using deque and vector containers.
Example
// priority_queue.cpp
// compile with: /EHsc
//
// 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 less sorts the items in ascending order
typedef deque<int> INTDQU;
typedef priority_queue<int, INTDQU, less<int> > INTPRQUE;
// Using priority_queue with vector
// Use of function greater sorts the items in descending order
typedef vector<char> CHVECTOR;
typedef priority_queue<char, CHVECTOR, greater<char> > CHPRQUE;
int main(void)
{
size_t 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);
// Output the item at the top using top()
cout << q.top() << endl;
// 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();
}
}
Output
201
size of q is:4
201
100
49
42
a
size of p is:5
a
c
d
h
m
Requirements
Header: <queue>