Cover Image for C++ Stack

C++ Stack

The C++ stack is a linear data structure that follows the Last-In-First-Out (LIFO) principle. This means that the last element added to the stack is the first one to be removed. Stacks are often used in various programming tasks, such as function call management (the call stack), expression evaluation, and more.

You can use std::stack in the C++ Standard Library to work with stacks. Here’s how to use it:

#include <iostream>
#include <stack>

int main() {
    // Create a stack of integers
    std::stack<int> myStack;

    // Push elements onto the stack

    // Access the top element (the last element added)
    std::cout << "Top element: " << << std::endl;

    // Pop elements (remove the top element)

    // Check if the stack is empty
    if (myStack.empty()) {
        std::cout << "Stack is empty." << std::endl;
    } else {
        std::cout << "Stack is not empty." << std::endl;

    // Get the size of the stack
    std::cout << "Stack size: " << myStack.size() << std::endl;

    return 0;

In this example:

  • We include the <stack> header to use std::stack.
  • We create a stack of integers (std::stack<int>).
  • Elements are pushed onto the stack using the push function.
  • The top function allows us to access the top (most recently added) element without removing it.
  • We use the pop function to remove the top element from the stack.
  • empty checks whether the stack is empty.
  • size returns the number of elements in the stack.

std::stack provides a simple and convenient way to work with stacks in C++. It abstracts away the underlying data structure (usually a deque) and offers essential stack operations. Stacks are useful in various algorithms and scenarios where you need to maintain a last-in, first-out order of elements.


The Tech Thunder

The Tech Thunder

The Tech Thunder