deque::at() y deque::swap() en C++ STL

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.

deque::at()

La función at() se utiliza para hacer referencia al elemento presente en la posición dada como parámetro de la función. Sintaxis:

dequename.at(position)
Parameters :
Position of the element to be fetched.
Returns :
Direct reference to the element at the given position.

Ejemplos:

Input  :  mydeque = 1, 2, 3
          mydeque.at(2);
Output :  3

Input  :  mydeque = 3, 4, 1, 7, 3
          mydeque.at(3);
Output :  7

Errores y excepciones 1. Si la posición no está presente en el deque, lanza out_of_range . 2. De lo contrario, tiene una fuerte garantía de lanzamiento sin excepción. 

CPP

// CPP program to illustrate
// Implementation of at() function
#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
    deque<int> mydeque;
    mydeque.push_back(3);
    mydeque.push_back(4);
    mydeque.push_back(1);
    mydeque.push_back(7);
    mydeque.push_back(3);
    cout << mydeque.at(3);
    return 0;
}

Producción:

7

Aplicación Dado un deque de enteros, imprime todos los enteros presentes en posiciones pares.

Input  :1, 2, 3, 4, 5, 6, 7, 8, 9
Output :1 3 5 7 9
Explanation - 1, 3, 5, 7 and 9 are at position 0, 2, 4, 6 and 8 which are even

Algoritmo 1. Ejecute un ciclo hasta el tamaño de la array. 2. Compruebe si la posición es divisible por 2, en caso afirmativo, imprima el elemento en esa posición. 

CPP

// CPP program to illustrate
// Application of at() function
#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
    deque<int> mydeque;
    mydeque.push_back(1);
    mydeque.push_back(2);
    mydeque.push_back(3);
    mydeque.push_back(4);
    mydeque.push_back(5);
    mydeque.push_back(6);
    mydeque.push_back(7);
    mydeque.push_back(8);
    mydeque.push_back(9);
    // Deque becomes 1, 2, 3, 4, 5, 6, 7, 8, 9
 
    for (int i = 0; i < mydeque.size(); ++i) {
        if (i % 2 == 0) {
            cout << mydeque.at(i);
            cout << " ";
        }
    }
    return 0;
}

Producción:

1 3 5 7 9
deque::intercambiar()

Esta función se utiliza para intercambiar el contenido de un deque con otro deque del mismo tipo y tamaño. Sintaxis:

dequename1.swap(dequename2)
Parameters :
The name of the deque with which
the contents have to be swapped.
Result :
All the elements of the 2 deque are swapped.

Ejemplos:

Input  : mydeque1 = {1, 2, 3, 4}
         mydeque2 = {3, 5, 7, 9}
         mydeque1.swap(mydeque2);
Output : mydeque1 = {3, 5, 7, 9}
         mydeque2 = {1, 2, 3, 4}

Input  : mydeque1 = {1, 3, 5, 7}
         mydeque2 = {2, 4, 6, 8}
         mydeque1.swap(mydeque2);
Output : mydeque1 = {2, 4, 6, 8}
         mydeque2 = {1, 3, 5, 7}

Errores y Excepciones 1. Arroja un error si los deque no son del mismo tipo. 2. Da error si los deque no son del mismo tamaño. 2. De lo contrario, tiene una garantía básica de lanzamiento sin excepción. 

CPP

// CPP program to illustrate
// Implementation of swap() function
#include <deque>
#include <iostream>
using namespace std;
 
int main()
{
    // deque container declaration
    deque<int> mydeque1{ 1, 2, 3, 4 };
    deque<int> mydeque2{ 3, 5, 7, 9 };
 
    // using swap() function to swap elements of deques
    mydeque1.swap(mydeque2);
 
    // printing the first deque
    cout << "mydeque1 = ";
    for (auto it = mydeque1.begin(); it < mydeque1.end(); ++it)
        cout << *it << " ";
 
    // printing the second deque
    cout << endl
         << "mydeque2 = ";
    for (auto it = mydeque2.begin(); it < mydeque2.end(); ++it)
        cout << *it << " ";
    return 0;
}

Producción:

mydeque1 = 3 5 7 9 
mydeque2 = 1 2 3 4 

Veamos las diferencias en forma tabular -:

  deque::at()  deque::intercambiar() 
1. Se utiliza para devolver una referencia al elemento en la posición n en el objeto contenedor deque. Se utiliza para intercambiar el contenido del contenedor por el contenido de otro contenedor que contiene elementos del mismo tipo.
2.

Su sintaxis es -:

referencia en (tamaño_tipo n);

Su sintaxis es -:

intercambiar (deque& x);

3. Solo toma un parámetro que es la posición de un elemento en el contenedor. Solo toma un parámetro que es la cola con la que queremos intercambiar los elementos.
4. Su complejidad es constante. No tiene ningún valor de retorno.
5. Su validez de iterador no cambia. 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

Deja una respuesta

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