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