Diferencia entre Queue y Deque en C++

Cola: una cola es una estructura de datos lineal que sigue un orden de primero en entrar, primero en salir (FIFO) en el que se realizan las operaciones. Es un tipo de adaptador de contenedor donde los elementos se insertan en un extremo del contenedor y se eliminan del otro.

Funciones:

  • vacío() : comprueba si la cola está vacía.
  • size() : Devuelve el int sin firmar, el tamaño de la cola.
  • queue::front() y queue::back() : la función front() devuelve una referencia al primer elemento o al más antiguo de la cola. La función back() devuelve una referencia al último o al elemento más nuevo de la cola.
  • push(k) y pop() : la función push() agrega el elemento ‘k’ al final de la cola. La función pop() elimina el elemento del principio de la cola y reduce su tamaño en 1.
  • swap() : intercambia los elementos de dos colas diferentes del mismo tipo pero puede o no ser del mismo tamaño.
  • emplace() : se usa para insertar un nuevo elemento al final de la cola.

Sintaxis:

queue <data_type> q

A continuación se muestra el programa para ilustrar lo mismo:

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;
}
Producción: 

Elements in Queue are: 15 1

 

Deque: Deque es un contenedor de secuencias con capacidad de expansión y contracción en ambos extremos. Es una plantilla de Standard Template Library o STL en C++ . Es similar a los vectores pero son más eficientes para la inserción y eliminación de elementos. Es posible que no se garantice la asignación de almacenamiento contiguo en deque como en los vectores.

Funciones:

  • max_size() : Devuelve el número máximo de elementos que puede contener deque.
  • push_back() y push_front() : push_front() empuja los elementos a una deque desde el frente y push_back() empuja los elementos a una deque desde atrás.
  • pop_front() y pop_back() : la función pop_front() se usa para sacar elementos de una cola desde el frente y la función pop_back() se usa para sacar elementos de una cola desde atrás.
  • clear() y erase() : clear se usa para eliminar todos los elementos de la deque y erase se usa para eliminar algunos elementos específicos.
  • insert() : aumenta el lado del contenedor al insertar el elemento en la posición especificada.
  • resize() : cambia el tamaño del contenedor del elemento según el requisito.
  • rbegin() y rend() : rbegin() apunta al último elemento de la deque mientras que rend apunta a la posición anterior al comienzo de la deque.
  • at() y swap() : at() apunta a la posición del elemento dado en el parámetro y swap() se usa como dos elementos de intercambio de dos deques.
  • emplace_front() y emplace_back() : estas dos funciones se utilizan para insertar nuevos elementos en el contenedor al principio y al final de deque respectivamente.

Sintaxis:

deque<data_type> dq

A continuación se muestra el programa para ilustrar lo mismo:

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;
}
Producción: 

Elements in deque are:  10 1

 

A continuación se muestra la diferencia tabular entre la cola y deque:

S. No.

Cola

Deque

1 La inserción se puede hacer solo por la parte trasera. La inserción es posible a través de ambos extremos.
2 La eliminación de elementos solo es posible a través de la parte frontal. Eliminación de elementos posible a través de ambos extremos.
3 No se puede acceder a los elementos a través de iteradores. Se puede acceder a los elementos a través de iteradores.
4 Implementados como adaptadores de contenedores. Implementado generalmente como alguna forma de array dinámica.
5 La pila no se puede implementar usando una cola. Una pila se puede implementar usando deque.

Publicación traducida automáticamente

Artículo escrito por aktmishra143 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *