Diferencia entre deque::begin y deque::assign en C++

Deque o cola 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 el 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. Aquí veremos la diferencia entre deque::assign y deque::at en C++.

deque::empezar

deque::begin se usa para devolver un iterador que apunta al primer elemento en el contenedor deque. Devuelve un iterador de acceso aleatorio que apunta a él.

Sintaxis:

 iterador begin();

Parámetros: Ninguno

Valor de retorno: su valor de retorno es un iterador al comienzo del contenedor de secuencia.

Validez del iterador: sin cambios en la validez del iterador

Archivo de cabecera:

<deque>

Excepciones: deque::begin nunca lanza una excepción

Ejemplo:

C++

// C++ program to implement deque::begin
  
#include <deque>
#include <iostream>
using namespace std;
  
// Driver code
int main()
{
    // Declaration of Deque
    deque<int> GFG = { 1, 2, 3, 4, 5 };
  
    // Iterator Pointing to the first element in the
    // container
    deque<int>::iterator itr = GFG.begin();
  
    cout << "Elements in Deque are : ";
  
    for (itr = GFG.begin(); itr != GFG.end(); ++itr) {
        cout << *itr << " ";
    }
  
    cout << endl;
    return 0;
}

Producción:

Elements in Deque are : 1 2 3 4 5 
  • Complejidad de tiempo: O(N)
  • Complejidad espacial: O(1)

deque::asignar

deque::assign se usa para asignar nuevos contenidos al contenedor deque reemplazando su contenido actual. Modifica el tamaño en consecuencia.

Sintaxis:

dequename.assign(<int> tamaño, <int> val)

Parámetros:

  1. tamaño: especifica el número de valores a asignar al contenedor.
  2. val: especifica el valor a asignar al contenedor.

Valor devuelto: Ninguno

Validez del iterador: en este contenedor, se invalidan todos los iteradores, punteros y referencias.

Archivo de cabecera:

<deque>

Excepciones: si se lanza una excepción, el contenedor está en un estado válido.

Ejemplo:

C++

// C++ program to implement deque::assign
  
#include <deque>
#include <iostream>
using namespace std;
  
// Driver codea
int main()
{
    // Declaration of Deque
    deque<int> A = { 5, 10, 15, 20 };
    deque<int> B;
  
    // Iterator for deque B to traverse
    deque<int>::iterator itr1 = B.begin();
  
    // Iterator for deque A to traverse
    deque<int>::iterator itr2 = A.begin();
  
    // Assigning deque A elements
    // into deque B
    B.assign(A.begin(), A.end());
  
    cout << "Elements in Container A are : ";
    for (itr2 = A.begin(); itr2 != A.end(); ++itr2) {
        cout << *itr2 << " ";
    }
    cout << endl;
  
    cout << "Elements in Container B are : ";
    for (itr1 = B.begin(); itr1 != B.end(); ++itr1) {
        cout << *itr1 << " ";
    }
  
    cout << endl;
    return 0;
}

Producción:

Elements in Container A are : 5 10 15 20 
Elements in Container B are : 5 10 15 20 
  • Complejidad de tiempo: O(N)
  • Complejidad espacial: O(N)

deque::assign vs deque::begin

A continuación se muestran las diferencias entre deque::assign y deque::begin

Base deque::empezar deque::asignar
Definición Se utiliza para devolver un iterador que apunta al primer elemento del contenedor deque. Se utiliza para devolver nuevos contenidos al contenedor deque, reemplazando su contenido actual.
Sintaxis iterador begin(); dequename.assign(<int> tamaño, <int> val);
Nº de parámetros No toma ningún parámetro. Toma dos parámetros.
Valor devuelto Su valor devuelto es un iterador al comienzo del contenedor de secuencia. No tiene ningún tipo de retorno.
Complejidad Constante Lineal

Publicación traducida automáticamente

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