A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/cpp/difference-between-queue-and-deque-in-c/ below:

Difference between Queue and Deque in C++

Difference between Queue and Deque in C++

Last Updated : 23 Jul, 2025

Queue: A Queue is a linear data structure that follows a First In First Out (FIFO) order in which the operations are performed. It is a type of container adaptor where elements are inserted into one end of the container and deleted from the other.

Functions:

Syntax:

queue <data_type> q

Below is the program to illustrate the same:

C++
// C++ program to demonstrate the
// working of queue
#include <bits/stdc++.h>
using namespace std;

// Driver Code
int main()
{
    // Declare a queue
    queue<int> q;

    // Insert elements in the queue
    q.push(10);
    q.push(5);
    q.push(15);
    q.push(1);

    // Delete elements from the queue
    q.pop();
    q.pop();

    cout << "Elements in Queue are: ";

    // Print the element stored
    // in queue
    while (!q.empty()) {
        cout << q.front() << ' ';

        // Pop the front element
        q.pop();
    }

    return 0;
}

Output: 
Elements in Queue are: 15 1

 

Deque: Deque is a sequence container with the ability of expansion and contraction on both ends. It is a template of Standard Template Library or STL in C++is. It is similar to vectors but are more efficient for the insertion and deletion of elements. Contiguous storage allocation in deque may not be guaranteed as in vectors.

Functions:

Syntax:

deque<data_type> dq

Below is the program to illustrate the same:

C++
// C++ program to demonstrate the
// working of deque
#include <bits/stdc++.h>
using namespace std;

// Driver Code
int main()
{
    // Declare a deque
    deque<int> dq;

    // Insert element in the front
    dq.push_front(10);
    dq.push_front(5);
    dq.push_front(3);

    // Delete elements from the front
    dq.pop_front();
    dq.pop_front();

    // Insert elements in the back
    dq.push_back(1);
    dq.push_back(50);
    dq.push_back(2);

    // Delete elements from the back
    dq.pop_back();
    dq.pop_back();

    cout << "Elements in deque are: ";

    // Print the element stored
    // in deque
    while (!dq.empty()) {
        cout << " " << dq.front();
        dq.pop_front();
    }

    return 0;
}

Output: 
Elements in deque are:  10 1

 

Below is the tabular difference between the queue and deque:

S.No.

Queue

Deque

1 Insertion can be done through the rear end only. Insertion is possible through both ends. 2 Deletion of elements is possible through the front end only. Deletion of elements possible through both ends. 3 Elements can not be accessed through iterators. Elements can be accessed through iterators. 4 Implemented as container adaptors. Implemented generally as some form of a dynamic array. 5 The stack can not be implemented using a queue. A stack can be implemented using deque.

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4