Deque de Pares en C++ con Ejemplos

¿Qué es un deque?

En C++ , el deque es un contenedor de secuencias y también se conoce con el nombre de cola de dos extremos. Como su nombre lo indica, un deque permite la inserción y eliminación desde ambos extremos. Aunque un deque es similar a un vector , los deques son más eficientes en comparación con los vectores. En los vectores, se garantiza la asignación de almacenamiento contiguo, pero este podría no ser el caso con deques. Deque es el caso especial de una cola ya que las operaciones de inserción y eliminación están permitidas en ambos extremos.

Funciones asociadas con un deque:

  • push_front() : Se usa para empujar elementos en el contenedor desde el frente.
  • push_back() : Se usa para empujar elementos en el contenedor desde atrás.
  • front() : Usado para referirse al primer elemento del contenedor.
  • back() : Se usa para referirse al último elemento del contenedor.

¿Qué es par?

El encabezado de utilidad en C++ nos proporciona un contenedor de pares . Un par consta de dos elementos de datos u objetos.

  • Se hace referencia al primer elemento como ‘primero’ y al segundo elemento como ‘segundo’ y el orden es fijo (primero, segundo).
  • Par se utiliza para combinar dos valores que pueden ser de tipo diferente. Pair proporciona una forma de almacenar dos objetos heterogéneos como una sola unidad.
  • El par se puede asignar, copiar y comparar. La array de objetos asignados en un mapa o hash_map es de tipo ‘par’ por defecto en el que todos los ‘primeros’ elementos son claves únicas asociadas con sus ‘segundos’ objetos de valor.

Para acceder a los elementos, usamos el nombre de la variable seguido del operador de punto seguido de la palabra clave primero o segundo.

¿Cómo acceder a un par?

Se puede acceder a los elementos de un par usando el operador de punto (.).

Sintaxis:

auto fistElement = miPar.primero;

auto fistElement = miPar.segundo;

Este artículo se centra en la creación de un deque de pares.

deque de parejas

Deque de pares es un contenedor de deque en el que cada elemento es un par por sí mismo. 

Sintaxis:

deque<par<tipoDatos1, TipoDatos2>> miContenedor;

Aquí,

dataType1 y dataType2 pueden ser tipos de datos similares o diferentes

Ejemplo 1: A continuación se muestra el programa C++ para implementar el deque de pares.

C++

// C++ program to demonstrate
// the working of deque
// of pairs
#include <bits/stdc++.h>
using namespace std;
  
// Function to print deque elements
void print(deque<pair<int, 
           bool> >& myContainer)
{
    for (auto currentpair : myContainer) 
    {
        // Each element of the deque is
        // a pair itself
        pair<int, bool> pr = currentpair;
  
        cout << "[ ";
  
        // Printing pair elements
        cout << pr.first << ' ' << 
                pr.second;
        cout << ']';
        cout << '\n';
    }
}
  
// Driver code
int main()
{
    // Declaring a deque of pairs
    // of type {int, bool}
    deque<pair<int, bool> >
          myContainer;
  
    // Declaring a pair
    pair<int, bool> pair1;
  
    // Initializing the
    // pair
    pair1 = make_pair(22, false);
  
    // Push the pair at the front
    // in the deque
    myContainer.push_front(pair1);
  
    // Declaring another pair
    pair<int, bool> pair2;
  
    // Initializing the
    // pair
    pair2 = make_pair(33, true);
  
    // Push the pair at the back
    // in the deque
    myContainer.push_back(pair2);
  
    // Declaring another pair
    pair<int, bool> pair3;
  
    // Initializing the pair
    pair3 = make_pair(11, false);
  
    // Push the pair at the front
    // in the deque
    myContainer.push_front(pair3);
  
    // Declaring another pair
    pair<int, bool> pair4;
  
    // Initializing the pair
    pair4 = make_pair(44, true);
  
    // Push the pair at the back
    // in the deque
    myContainer.push_back(pair4);
  
    // Calling print function
    print(myContainer);
    return 0;
}
Producción

[ 11 0]
[ 22 0]
[ 33 1]
[ 44 1]

Ejemplo 2: A continuación se muestra el programa C++ para implementar el deque de pares.

C++

// C++ program to demonstrate
// the working of deque
// of pairs
#include <bits/stdc++.h>
using namespace std;
  
// Function to print deque elements
void print(deque<pair<string, 
           bool> >& myContainer)
{
    for (auto currentpair : myContainer) 
    {
        // Each element of the deque is
        // a pair itself
        pair<string, bool> pr = currentpair;
  
        cout << "[ ";
  
        // Printing pair elements
        cout << pr.first << ' ' << 
                pr.second;
        cout << ']';
        cout << '\n';
    }
}
  
// Driver code
int main()
{
    // Declaring a deque of pairs
    // of type {string, bool}
    deque<pair<string, bool> >
          myContainer;
  
    // Declaring a pair
    pair<string, bool> pair1;
  
    // Initializing the
    // pair
    pair1 = make_pair("GeeksforGeeks", 
                       false);
  
    // Push the pair at the front
    // in the deque
    myContainer.push_front(pair1);
  
    // Declaring another pair
    pair<string, bool> pair2;
  
    // Initializing the
    // pair
    pair2 = make_pair("GFG", true);
  
    // Push the pair at the back
    // in the deque
    myContainer.push_back(pair2);
  
    // Declaring another pair
    pair<string, bool> pair3;
  
    // Initializing the pair
    pair3 = make_pair("Java", 
                       false);
  
    // Push the pair at the front
    // in the deque
    myContainer.push_front(pair3);
  
    // Declaring another pair
    pair<string, bool> pair4;
  
    // Initializing the pair
    pair4 = make_pair("Python", 
                       true);
  
    // Push the pair at the back
    // in the deque
    myContainer.push_back(pair4);
  
    // Calling print function
    print(myContainer);
    return 0;
}
Producción

[Java 0]
[GeeksforGeeks 0]
[GFG 1]
[Python 1]

Publicación traducida automáticamente

Artículo escrito por bhuwanesh 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 *