Stack, Queue, and Priority Queue in C++ STL:

The C++ Standard Template Library (STL) offers ready-made implementations of core data structures like stack, queue, and priority queue. These containers are extremely useful for real-world problem-solving and competitive programming.

In this blog, you’ll learn how to use them with simple examples and expected outputs.

Stack, Queue, and Priority Queue in C++ STL: Explained with Code and Output

1. Stack in C++

A stack follows the Last-In-First-Out (LIFO) principle. The last element added is the first one removed.

#include <iostream>
#include <stack>
using namespace std;

int main() {
    stack<int>st;
    st.push(10);
    st.push(20);
    st.push(30);

    cout<<"Top: "<<st.top()<<endl;
    st.pop();
    cout<<"After pop, top: " <<st.top()<<endl;
    return 0;
}
Output:
Top: 30 
After pop, top: 20

Key Functions:

  • push(x) – adds an element

  • pop() – removes the top element

  • top() – returns the top element

  • empty() – checks if the stack is empty

  • size() – returns the number of elements

2. Queue in C++

A queue follows the First-In-First-Out (FIFO) principle. The first element added is the first one removed.

#include <iostream>
#include <queue>
using namespace std;

int main() {
    queue<string>q;
    q.push("Alice");
    q.push("Bob");
    q.push("Charlie");
    cout<<"Front: "<<q.front()<<endl;
    cout<<"Back: "<<q.back()<<endl;
    q.pop(); 
    cout<<"After pop, front: "<<q.front()<<endl;
    return 0;
}
Output:
Front: Alice 
Back: Charlie 
After pop, front: Bob

  • push(x) – adds element at back

  • pop() – removes element from front

  • front() – returns front element

  • back() – returns last element

  • empty() – checks if queue is empty

3. Priority Queue in C++

A priority queue stores elements in such a way that the largest element is always at the top by default (Max-Heap).

#include <iostream>
#include <queue>
using namespace std;

int main() {
    priority_queue<int> pq;
    pq.push(50);
    pq.push(10);
    pq.push(30);
    cout<<"Top element: " <<pq.top()<<endl;
    pq.pop();
    cout<<"After pop, top element: " <<pq.top()<<endl;
    return 0;
}
Output:
Top element: 50 
After pop, top element: 30

 

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top