Open In App

stack swap() in C++ STL

Last Updated : 24 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Stacks are a type of container adaptors with LIFO(Last In First Out) type of work, where a new element is added at one end and (top) an element is removed from that end only.

stack::swap()

This function is used to swap the contents of one stack with another stack of same type but the size may vary. Syntax :

stackname1.swap(stackname2)

Parameters: The name of the stack with which the contents have to be swapped. Result: All the elements of the 2 stack are swapped. Examples:

contents of the stack from top to bottom are
Input : mystack1 = {4, 3, 2, 1}
mystack2 = {9, 7 ,5, 3}
mystack1.swap(mystack2);
Output : mystack1 = 9, 7, 5, 3
mystack2 = 4, 3, 2, 1

Input : mystack1 = {7, 5, 3, 1}
mystack2 = {8, 6, 4, 2}
mystack1.swap(mystack2);
Output : mystack1 = 8, 6, 4, 2
mystack2 = 7, 5, 3, 1

Note: In stack container, the elements are printed in reverse order because the top is printed first then moving on to other elements. 

CPP
// CPP program to illustrate 
// Implementation of swap() function 
#include <stack> 
#include <iostream> 
using namespace std; 

int main() 
{ 
        // stack container declaration 
    stack<int> mystack1; 
    stack<int> mystack2; 
    
    // pushing elements into first stack 
    mystack1.push(1); 
    mystack1.push(2); 
    mystack1.push(3); 
    mystack1.push(4); 
    
    // pushing elements into 2nd stack 
    mystack2.push(3); 
    mystack2.push(5); 
    mystack2.push(7); 
    mystack2.push(9); 

        // using swap() function to swap elements of stacks 
    mystack1.swap(mystack2); 

        // printing the first stack 
    cout<<"mystack1 = "; 
    while (!mystack1.empty()) { 
        cout<<mystack1.top()<<" "; 
        mystack1.pop(); 
    } 

        // printing the second stack 
    cout<<endl<<"mystack2 = "; 
    while (!mystack2.empty()) { 
        cout<<mystack2.top()<<" "; 
        mystack2.pop(); 
    } 
    return 0; 
} 

Output:

mystack1 = 9 7 5 3
mystack2 = 4 3 2 1

Time Complexity: O(1)

Auxiliary Space: O(n)


Next Article
Article Tags :
Practice Tags :

Similar Reads