The C++ move constructor std::stack::stack() constructs the stack with the contents of other using move semantics.
DeclarationFollowing is the declaration for std::stack::stack() constructor form std::stack header.
C++11template <class Alloc> stack (stack&& x, const Alloc& alloc);Parameters
x − Stack object of same type.
alloc − Allocator object.
Constructor never returns values.
ExceptionsThis member function never throws exception.
Time complexityLinear i.e. O(n)
ExampleThe 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4