¿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; }
[ 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; }
[Java 0]
[GeeksforGeeks 0]
[GFG 1]
[Python 1]