Las colas Deque o de doble extremo son contenedores de secuencia con la función de expansión y contracción en ambos extremos. Son similares a los vectores, pero son más eficientes en caso de inserción y eliminación de elementos al final, y también al principio. A diferencia de los vectores, es posible que no se garantice la asignación de almacenamiento contiguo.
La función pop_front() se usa para hacer estallar o eliminar elementos de un deque desde el frente. El valor se elimina del deque desde el principio y el tamaño del contenedor se reduce en 1.
Sintaxis:
dequename.pop_front() Parameters : No value is needed to pass as the parameter. Result : Removes the value present at the front of the given deque named as dequename
Ejemplos:
Input : mydeque = 1, 2, 3 mydeque.pop_front(); Output : 2, 3 Input : mydeque = 3, 4, 1, 7, 3 mydeque.pop_front(); Output : 4, 1, 7, 3
Errores y excepciones
- No-Throw-Garantía: si se lanza una excepción, no hay cambios en el contenedor
- Si el deque está vacío, muestra un comportamiento indefinido.
CPP
// CPP program to illustrate // pop_front() function #include <iostream> #include <deque> using namespace std; int main() { deque<int> mydeque; mydeque.push_front(3); mydeque.push_front(2); mydeque.push_front(1); //Deque becomes 1, 2, 3 mydeque.pop_front(); //Deque becomes 2, 3 for (auto it = mydeque.begin(); it != mydeque.end(); ++it) cout << ' ' << *it; }
Producción:
2 3
Aplicación: Ingrese una deque vacía con los siguientes números y ordene usando la función push_front() e imprima el reverso de la deque.
Input : 1, 2, 3, 4, 5, 6, 7, 8 Output: 8, 7, 6, 5, 4, 3, 2, 1
CPP
// CPP program to illustrate // application Of pop_front() function #include <iostream> #include <deque> using namespace std; int main() { deque<int> mydeque{}, newdeque{}; mydeque.push_front(8); mydeque.push_front(7); mydeque.push_front(6); mydeque.push_front(5); mydeque.push_front(4); mydeque.push_front(3); mydeque.push_front(2); mydeque.push_front(1); //Deque becomes 1, 2, 3, 4, 5, 6, 7, 8 while (!mydeque.empty()) { newdeque.push_front(mydeque.front()); mydeque.pop_front(); } for (auto it = newdeque.begin(); it != newdeque.end(); ++it) cout << ' ' << *it; }
Producción:
8 7 6 5 4 3 2 1
Complejidad del tiempo: O(1)
Espacio Auxiliar : O(1)
La función pop_back() se usa para hacer estallar o eliminar elementos de un deque desde atrás. El valor se elimina de la deque desde el final y el tamaño del contenedor se reduce en 1.
Sintaxis:
dequename.pop_back() Parameters : No value is needed to pass as the parameter. Result : Removes the value present at the end or back of the given deque named as dequename
Ejemplos:
Input : mydeque = 1, 2, 3 mydeque.pop_back(); Output : 1, 2 Input : mydeque = 3, 4, 1, 7, 3 mydeque.pop_back(); Output : 3, 4, 1, 7
Errores y excepciones
- No-Throw-Garantía: si se lanza una excepción, no hay cambios en el contenedor
- Si el deque está vacío, muestra un comportamiento indefinido.
CPP
// CPP program to illustrate // pop_back() function #include <iostream> #include <deque> using namespace std; int main() { deque<int> mydeque; mydeque.push_front(5); mydeque.push_front(4); mydeque.push_front(3); mydeque.push_front(2); mydeque.push_front(1); //Deque becomes 1, 2, 3, 4, 5 mydeque.pop_back(); //Deque becomes 1, 2, 3, 4 for (auto it = mydeque.begin(); it != mydeque.end(); ++it) cout << ' ' << *it; }
Producción:
1 2 3 4
Aplicación:
Ingrese una deque vacía con los siguientes números y ordene usando la función push_front() e imprima el reverso de la deque.
Input : 1, 20, 39, 43, 57, 64, 73, 82 Output : 82, 73, 64, 57, 43, 39, 20, 1
CPP
// CPP program to illustrate // application Of pop_back() function #include <iostream> #include <deque> using namespace std; int main() { deque<int> mydeque, newdeque; mydeque.push_front(82); mydeque.push_front(73); mydeque.push_front(64); mydeque.push_front(57); mydeque.push_front(43); mydeque.push_front(39); mydeque.push_front(20); mydeque.push_front(1); //Deque becomes 1, 20, 39, 43, 57, 64, 73, 82 while (!mydeque.empty()) { newdeque.push_back(mydeque.back()); mydeque.pop_back(); } for (auto it = newdeque.begin(); it != newdeque.end(); ++it) cout << ' ' << *it; }
Producción:
82 73 64 57 43 39 20 1
Complejidad del tiempo: O(1)
Espacio Auxiliar : O(1)
Veamos las diferencias en forma tabular -:
deque::pop_front() | deque::pop_back() | |
1. | Se utiliza para eliminar el primer elemento en el contenedor deque. | Se utiliza para eliminar el último elemento en el contenedor deque |
2. |
Su sintaxis es -: frente_pop(); |
Su sintaxis es -: pop_back(); |
3. | No toma ningún parámetro. | No toma ningún parámetro. |
4. | No tiene ningún valor de retorno. | No tiene ningún valor de retorno. |
5. | Su complejidad es constante. | Su complejidad es constante. |
Publicación traducida automáticamente
Artículo escrito por AyushSaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA