C++ Queue Library - priority_queue() Function



Description

The C++ range constructor std::priority_queue::priority_queue() constructs a priority_queue with as many elements in range of first to last.

Declaration

Following is the declaration for std::priority_queue::priority_queue() constructor form std::queue header.

C++98

template <class InputIterator>
priority_queue(InputIterator first, InputIterator last,
              const Compare& comp = Compare(),
              const Container& ctnr = Container());

C++11

template <class InputIterator>
priority_queue(InputIterator first, InputIterator last,
               const Compare& comp, const Container& ctnr);

Parameters

  • compare − Comparison object to be used to order the priority_queue.

    This may be a function pointer or function object that can compare its two arguments.

  • cntr − Container object.

    This is type of the underlying container for the priority_queue and it's default values is vector.

  • first − Input iterator to the initial position in range.

  • last − Input itertor to the final position in range.

Return value

Constructor never returns value.

Exceptions

This member function never throws exception.

Time complexity

Linear i.e. O(n)

Example

The following example shows the usage of std::priority_queue::priority_queue() constructor.

#include <iostream>
#include <queue>
#include <vector>

using namespace std;

int main(void) {
   vector<int> v = {3, 1, 5, 2, 4};
   priority_queue<int> q(v.begin(), v.begin() + 4);

   cout << "Queue contents are" << endl;
   while (!q.empty()) {
      cout << q.top() << endl;
      q.pop();
   }

   return 0;
}

Let us compile and run the above program, this will produce the following result −

Queue contents are
5
3
2
1
queue.htm
Advertisements