Skip to content
Related Articles

Related Articles

Improve Article

Stack in C++ STL

  • Difficulty Level : Easy
  • Last Updated : 14 Apr, 2021

Stacks are a type of container adaptors with LIFO(Last In First Out) type of working, where a new element is added at one end and (top) an element is removed from that end only.  Stack uses an encapsulated object of either vector or deque (by default) or list (sequential container class) as its underlying container, providing a specific set of member functions to access its elements.

Stack Syntax:-

For creating  a stack, we must include the <stack> header file in our code. We then use this syntax to define the std::stack:

template <class Type, class Container = deque<Type> > class stack;

Type – is the Type of element contained in the std::stack. It can be any valid C++ type or even a user-defined type.

Container – is the Type of underlying container object.



Member Types:-

value_type- The first template parameter, T. It denotes the element types.

container_type- The second template parameter, Container. It denotes the underlying container type.

size_type- Unsigned integral type.
  
The functions associated with stack are: 
empty() – Returns whether the stack is empty – Time Complexity : O(1) 
size() – Returns the size of the stack – Time Complexity : O(1) 
top() – Returns a reference to the top most element of the stack – Time Complexity : O(1) 
push(g) – Adds the element ‘g’ at the top of the stack – Time Complexity : O(1) 
pop() – Deletes the top most element of the stack – Time Complexity : O(1) 

CPP




#include <iostream>
#include <stack>
using namespace std;
int main() {
    stack<int> stack;
    stack.push(21);
    stack.push(22);
    stack.push(24);
    stack.push(25);
     
         stack.pop();
    stack.pop();
 
    while (!stack.empty()) {
        cout << ' ' << stack.top();
        stack.pop();
    }
}
Output
 22 21

Code Explanation:

  1. Include the iostream header file or <bits/stdc++.h> in our code to use its functions.
  2. Include the stack header file in our code to use its functions if already included <bits/stdc++.h> then no need of stack header file because it has already inbuilt function in it.
  3. Include the std namespace in our code to use its classes without calling it.
  4. Call the main() function. The program logic should be added within this function.
  5. Create a stack stack to store integer values.
  6. Use the push() function to insert the value 21 into the stack.
  7. Use the push() function to insert the value 22 into the stack.
  8. Use the push() function to insert the value 24 into the stack.
  9. Use the push() function to insert the value 25 into the stack.
  10. Use the pop() function to remove the top element from the stack, that is, 25. The top element now becomes 24.
  11. Use the pop() function to remove the top element from the stack, that is, 24. The top element now becomes 22.
  12. Use a while loop and empty() function to check whether the stack is NOT empty. The ! is the NOT operator.
  13. Printing the current contents of the stack on the console.
  14. Call the pop() function on the stack.
  15. End of the body of the while loop.
  16. End of the main() function body.

List of functions of Stack: 

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.



My Personal Notes arrow_drop_up
Recommended Articles
Page :