C++ Stack Library - stack() Function



Description

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

Declaration

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

C++11

 template <class Alloc> stack (stack&& x, const Alloc& alloc); 

Parameters

  • x − Stack object of same type.

  • alloc − Allocator object.

Return value

Constructor never returns values.

Exceptions

This member function never throws exception.

Time complexity

Linear i.e. O(n)

Example

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

 #include <iostream> #include <stack> using namespace std; int main(void) { stack<int> s1; for (int i = 0; i < 5; ++i) s1.push(i + 1); cout << "Size of stack s1 before move operation = " << s1.size() << endl; stack<int> s2(move(s1)); cout << "Size of stack s1 after move operation = " << s1.size() << endl; cout << "Contents of stack s2" << endl; while (!s2.empty()) { cout << s2.top() << endl; s2.pop(); } return 0; } 

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

 Size of stack s1 before move operation = 5 Size of stack s1 after move operation = 0 Contents of stack s2 5 4 3 2 1 
stack.htm
Advertisements