C++ Queue Library - priority_queue() Function



Description

The C++ move constructor std::priority_queue::priority_queue() constructs the priority_queue with the contents of other using move semantics.

Declaration

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

C++11

explicit priority_queue(const Compare& comp = Compare(),
                        Container&& ctnr = Container());

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.

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::priotiry_queue::priority_queue() constructor.

#include <iostream>
#include <queue>

using namespace std;

int main(void) {
   auto it = {3, 1, 5, 2, 4};
   priority_queue<int> q1(less<int>(), it);
   priority_queue<int> q2(move(q1));

   cout << "Contents of q1 after move operation" << endl;
   while (!q1.empty()) {
      cout << q1.top() << endl;
      q1.pop();
   }

   cout << endl;

   cout << "Contents of q2 after move operation" << endl;
   while (!q2.empty()) {
      cout << q2.top() << endl;
      q2.pop();
   }

   return 0;
}

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

Contents of q1 after move operation

Contents of q2 after move operation
5
4
3
2
1
queue.htm
Advertisements