A Queue is a linear data structure that follows the principle:
FIFO – First In, First Out
So many people are already benefiting from this software development course
This means:
People in line: A → B → C → D
Served first: A | Operation | Description |
|---|---|
enqueue | Add an element to the rear |
dequeue | Remove an element from the front |
front | Get the front element |
back | Get the last element |
isEmpty | Check if queue is empty |
size | Number of elements |
C++ provides the queue container in the Standard Template Library (STL).
#include <queue> queue<int> q; #include <iostream>
#include <queue>
using namespace std;
int main() {
queue<int> q;
q.push(10); // enqueue
q.push(20);
q.push(30);
cout << "Front: " << q.front() << endl; // 10
cout << "Back: " << q.back() << endl; // 30
q.pop(); // dequeue
cout << "Front after pop: " << q.front() << endl; // 20
cout << "Size: " << q.size() << endl;
return 0;
} | Function | Purpose |
|---|---|
push(x) | Insert element at rear |
pop() | Remove front element |
front() | Access first element |
back() | Access last element |
empty() | Returns true if empty |
size() | Returns number of elements |
Queue (FIFO)
Front → [10] [20] [30] ← Rear
pop() removes 10 queue is implemented using: deque (default)listqueue<int, deque<int>> q;
queue<int, list<int>> q; ❗ You cannot access elements randomly (no indexing like arrays).
Basic FIFO structure.
Elements served based on priority, not order.
#include <queue>
priority_queue<int> pq;
pq.push(10);
pq.push(50);
pq.push(20);
// Top = 50
Max Heap by default
Insert/remove from both ends.
#include <deque>
deque<int> dq;
dq.push_front(10);
dq.push_back(20);
#define SIZE 5
int arr[SIZE];
int front = -1, rear = -1; void enqueue(int x) {
if (rear == SIZE - 1)
cout << "Queue Overflow";
else {
if (front == -1) front = 0;
arr[++rear] = x;
}
} void dequeue() {
if (front == -1 || front > rear)
cout << "Queue Underflow";
else
front++;
} datanextAdvantages:
| Operation | Time Complexity |
|---|---|
| Enqueue | O(1) |
| Dequeue | O(1) |
| Front/Back | O(1) |
Space Complexity:
✔ CPU Scheduling
✔ Breadth-First Search (BFS)
✔ Print Queue
✔ Call Center Systems
✔ Message Queues
✔ Order Processing Systems
| Stack | Queue |
|---|---|
| LIFO | FIFO |
| Push/Pop | Enqueue/Dequeue |
| Used in recursion | Used in scheduling |
❌ Accessing queue elements using index
❌ Calling front() on empty queue
❌ Forgetting #include <queue>
Use a queue when:
A queue in C++ is:
Latest tech news and coding tips.
Why borrowing code is a skill—when you understand what you're copying. For years, "copy-paste developer"…
Interactive forms rarely keep every field active all the time. Sometimes an input should only…
A modern JavaScript API for working with dates, times, time zones, and calendars without the…
Understanding What Happens Behind the Scenes Node.js looks simple from the outside—you write JavaScript, call…
The need for absolute certainty is the greatest disease the engineering mind faces. The moment…
The software industry is one of the most competitive places to build a career. Every…
View Comments
Nice explanation of the basic operations. One thing worth adding is how the `empty()` function is often used to prevent errors when trying to dequeue from an empty queue. It’s a small detail, but it can really help prevent runtime issues in more complex programs.