Skip to content

std::stack

Es una clase plantilla que pertenece a la biblioteca estándar de C++ (STL), y se utiliza para manejar estructuras de datos LIFO (Last-In-First-Out) o "pilas" lo que significa que el último elemento que se inserta en la pila es el primero en ser eliminado.

cpp
#include <stack>
std::stack<int> miPila; // Declara una pila que contendrá enteros

Funciones miembros de stack:

  • push(valor): Agrega un elemento al tope de la pila.
  • pop(): Elimina el elemento en el tope de la pila (sin devolverlo).
  • top(): Devuelve una referencia al elemento en el tope de la pila, sin eliminarlo.
  • empty(): Devuelve true si la pila está vacía, false en caso contrario.
  • size(): Devuelve el número de elementos en la pila.
cpp
#include <iostream>
#include <stack>

int main() 
{
    std::stack<int> myStack;

    // Agregamos 5 números enteros a la pila.
    myStack.push(10);
    myStack.push(20);
    myStack.push(30);
    myStack.push(40);
    myStack.push(50);

    // Recuperamos y mostramos los elementos de la pila.
    std::cout << "Elementos en la pila: ";
    while (!myStack.empty()) {
        std::cout << myStack.top() << " ";
        myStack.pop();
    }
    std::cout << std::endl;

    return 0;
}
cpp
#include <iostream>
#include <stack>

int main()
 {

   std::stack<std::string> myStack;

	// Agregamos 5 strings a la pila.
	myStack.push("42 Barcelona");
	myStack.push("42 Madrid");
	myStack.push("42 Paris");
	
    // Recuperamos y mostramos los elementos de la pila.
    std::cout << "Elementos en la pila: ";
    while (!myStack.empty()) {
        std::cout << myStack.top() << " ";
        myStack.pop();
    }
    std::cout << std::endl;

    return 0;
}