Las colas Deque o de doble extremo son contenedores de secuencia con la característica 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.
Esta función se utiliza para insertar un nuevo elemento en el contenedor deque, el nuevo elemento se agrega al comienzo de la deque. Sintaxis:
dequename.emplace_front(value) Parameters : The element to be inserted into the deque is passed as the parameter. Result : The parameter is added to the deque at the beginning.
Ejemplos:
Input : mydeque{1, 2, 3, 4, 5}; mydeque.emplace_front(6); Output : mydeque = 6, 1, 2, 3, 4, 5 Input : mydeque{}; mydeque.emplace_front(4); Output : mydeque = 4
Errores y excepciones 1. Tiene una fuerte garantía de excepción, por lo tanto, no se realizan cambios si se lanza una excepción. 2. El parámetro debe ser del mismo tipo que el del contenedor, de lo contrario, se arroja un error.
CPP
// INTEGER DEQUE EXAMPLE // CPP program to illustrate // Implementation of emplace_front() function #include <deque> #include <iostream> using namespace std; int main() { deque<int> mydeque; mydeque.emplace_front(1); mydeque.emplace_front(2); mydeque.emplace_front(3); mydeque.emplace_front(4); mydeque.emplace_front(5); mydeque.emplace_front(6); // deque becomes 6, 5, 4, 3, 2, 1 // printing the deque for (auto it = mydeque.begin(); it != mydeque.end(); ++it) cout << ' ' << *it; return 0; }
Producción:
6 5 4 3 2 1
CPP
// STRING DEQUE EXAMPLE // CPP program to illustrate // Implementation of emplace_front() function #include <deque> #include <iostream> #include <string> using namespace std; int main() { deque<string> mydeque; mydeque.emplace_front("portal"); mydeque.emplace_front("science"); mydeque.emplace_front("computer"); mydeque.emplace_front("a"); mydeque.emplace_front("is"); mydeque.emplace_front("GEEKSFORGEEKS"); // deque becomes GEEKSFORGEEKS, is, a, // computer, science, portal // printing the deque for (auto it = mydeque.begin(); it != mydeque.end(); ++it) cout << ' ' << *it; return 0; }
Producción:
GEEKSFORGEEKS is a computer science portal
Complejidad de tiempo: Aplicación O(1) Dado un deque vacío, agregue números enteros usando la función emplace_front() y luego calcule su tamaño sin usar la función de tamaño().
Input : 1, 2, 3, 4, 5, 6 Output : 6
Algoritmo 1. Agregue elementos a la deque usando la función emplace_front() 2. Verifique si la deque está vacía, si no, incremente la variable de contador inicializada como 0 y extraiga el elemento posterior. 3. Repita este paso hasta que el deque se vacíe. 4. Imprime el valor final de la variable.
CPP
// CPP program to illustrate // Application of emplace_front() function #include <deque> #include <iostream> using namespace std; int main() { // variable declaration int count = 0; // deque declaration deque<int> mydeque; // adding elements to deque mydeque.emplace_front(1); mydeque.emplace_front(2); mydeque.emplace_front(3); mydeque.emplace_front(4); mydeque.emplace_front(5); mydeque.emplace_front(6); // counting elements in deque while (!mydeque.empty()) { count++; mydeque.pop_back(); } cout << count; return 0; }
Producción :
6
Esta función se usa para insertar un nuevo elemento en el contenedor deque, el nuevo elemento se agrega al final del deque. Sintaxis:
dequename.emplace_back(value) Parameters : The element to be inserted into the deque is passed as the parameter. Result : The parameter is added to the deque at the end.
Ejemplos:
Input : mydeque{1, 2, 3, 4, 5}; mydeque.emplace_back(6); Output : mydeque = 1, 2, 3, 4, 5, 6 Input : mydeque{}; mydeque.emplace_back(4); Output : mydeque = 4
Errores y excepciones 1. Tiene una fuerte garantía de excepción, por lo tanto, no se realizan cambios si se lanza una excepción. 2. El parámetro debe ser del mismo tipo que el del contenedor; de lo contrario, se genera un error.
CPP
// INTEGER DEQUE EXAMPLE // CPP program to illustrate // Implementation of emplace_back() function #include <deque> #include <iostream> using namespace std; int main() { deque<int> mydeque; mydeque.emplace_back(1); mydeque.emplace_back(2); mydeque.emplace_back(3); mydeque.emplace_back(4); mydeque.emplace_back(5); mydeque.emplace_back(6); // deque becomes 1, 2, 3, 4, 5, 6 // printing the deque for (auto it = mydeque.begin(); it != mydeque.end(); ++it) cout << ' ' << *it; return 0; }
Producción:
1 2 3 4 5 6
CPP
// STRING DEQUE EXAMPLE // CPP program to illustrate // Implementation of emplace_back() function #include <deque> #include <iostream> using namespace std; int main() { deque<string> mydeque; mydeque.emplace_back("Hi"); mydeque.emplace_back("this"); mydeque.emplace_back("is"); mydeque.emplace_back("geeksforgeeks"); // deque becomes Hi this is geeksforgeeks // printing the deque for (auto it = mydeque.begin(); it != mydeque.end(); ++it) cout << ' ' << *it; return 0; }
Producción:
Hi this is geeksforgeeks
Complejidad de tiempo: Aplicación O(1) Dado un deque vacío, agregue números enteros usando la función emplace_front() y luego calcule la suma de los elementos.
Input : 4, 5, 9, 2, 6 Output : 26
Algoritmo 1. Agregue elementos a la deque usando la función emplace_back() 2. Verifique si la deque está vacía, si no, agregue el valor posterior a la variable de suma inicializada como 0, y extraiga el elemento posterior. 3. Repita este paso hasta que el deque se vacíe. 4. Imprime el valor final de la variable.
CPP
// CPP program to illustrate // Application of emplace_back() function #include <deque> #include <iostream> using namespace std; int main() { // variable declaration int sum = 0; // deque declaration deque<int> mydeque; // adding elements to deque mydeque.emplace_back(4); mydeque.emplace_back(5); mydeque.emplace_back(9); mydeque.emplace_back(2); mydeque.emplace_back(6); // counting sum of elements in deque while (!mydeque.empty()) { sum = sum + mydeque.back(); mydeque.pop_back(); } cout << sum; return 0; }
Producción :
6
Veamos las diferencias en forma tabular -:
deque::emplace_front() | deque::emplace_back() | |
1. | Se utiliza para insertar un nuevo elemento al principio del deque. | Se utiliza para insertar un nuevo elemento al final de la deque |
2. |
Su sintaxis es -: emplace_front (args&&…args); |
Su sintaxis es -: emplace_back (argumentos&&… argumentos); |
3. | No tiene ningún valor de retorno. | No tiene ningún valor de retorno. |
4. | Su complejidad es constante. | Su complejidad es constante. |
5. | Está presente en el archivo de encabezado <deque> | Está presente en el archivo de encabezado <deque> |
Publicación traducida automáticamente
Artículo escrito por AyushSaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA