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

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 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::cbegin

deque::cbegin se usa para devolver un iterador const que apunta al primer elemento en el contenedor. No podemos usar esto para modificar los contenidos a los que apunta el iterador.

Sintaxis:

const_iterator cbegin();

Parámetros: Ninguno

Valor devuelto: un const_iterator al comienzo de la secuencia.

Validez del iterador: no hay cambios en la validez del iterador

Archivo de cabecera:

<deque>

Excepciones: Nunca lanza excepciones .

Ejemplo:

C++

// C++ program to demonstrate deque::cbegin
  
#include <deque>
#include <iostream>
using namespace std;
  
// Driver code
int main()
{
    // Declaration of Deque
    deque<int> GFG = { 1, 2, 3, 4, 5 };
  
    cout << "Elements in Deque Container are : ";
    for (auto it = GFG.cbegin(); it != GFG.cend(); ++it) {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}

Producción:

Elements in Deque Container are : 1 2 3 4 5 
  • Complejidad del tiempo – O(1)
  • 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 demonstrate deque::assign
  
#include <deque>
#include <iostream>
using namespace std;
  
// Driver code
int main()
{
    // Declaration of Deque
    deque<int> A = { 10, 20, 30, 40, 50, 60 };
    deque<int> B;
  
    // Iterator for deque to traverse
    deque<int>::iterator itr = B.begin();
  
    // Assigning deque A elements
    // into deque B
    B.assign(A.begin(), A.end());
  
    cout << "Elements in Deque B are : ";
    for (itr = B.begin(); itr != B.end(); ++itr) {
        cout << *itr << " ";
    }
  
    cout << endl;
    return 0;
}

Producción:

Elements in Deque B are : 10 20 30 40 50 60 
  • Complejidad de tiempo: O(N)
  • Complejidad espacial: O(N)

deque::assign vs deque::cbegin

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

Base deque::cbegin deque::asignar
Definición Se utiliza para devolver un iterador const que apunta al primer elemento del contenedor. Se utiliza para asignar nuevos contenidos al contenedor deque, reemplazando su contenido actual
Sintaxis const_iterator cbegin(); dequename.assign(<int> tamaño, <int> val);
Parámetros No toma ningún parámetro. Se necesitan dos parámetros, es decir, tamaño y valor.
Valor devuelto Su valor devuelto es un const_iterator al comienzo de la 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 *