¿Cómo se agrega a un vector en c?++?

¿Cómo se agrega a un vector en c?++?
Agregar a un vector significa agregar uno o más elementos en la parte posterior del vector. El vector C ++ tiene funciones miembros. Las funciones del miembro que se pueden usar para agregar son: push_back (), insert () y emplace (). La función oficial que se utilizará para agregar es push_back (). El uso de estas tres funciones miembros para agregar a un vector C ++ se explica en este artículo.

Para usar un vector, la biblioteca vectorial debe incluirse en la parte superior del programa, con

#incluir

Todos los códigos vectoriales para este artículo están en la función C ++ Main ().

Contenido del artículo

  • Hacer retroceder
  • Inserción
  • Emplárgico
  • Conclusión

Hacer retroceder

Se puede empujar un solo elemento en la parte posterior de un vector. Hay dos sintaxis para las funciones de miembro push_back (), que son:

Void push_back (const t & x)
void push_back (t && x)

Ambos devuelven nulo, y se usan de manera similar.

El siguiente código tiene un vector de flores en Gran Bretaña. Una flor más es push_back (), yo.mi., adjunto, al vector. El vector es un vector de cadenas de la clase de cadena.

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorvtr = "Blue Throatwort", "BottleBrush", "brodiaea", "escoba", "columbine";
para (int i = 0; icout<cout<VTR.push_back ("Cornflower");
para (vector :: iterator it = vtr.comenzar(); él != VTR.fin(); IT ++)
cout<< *it << ", ";
cout<regresar 0;

La salida es:

Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine,
Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine, Cornflower,

El programa comienza con las directivas de inclusión necesarias. Luego está la función principal () con todo el código vectorial. En la función principal (), se declara un vector de cinco cuerdas de nombres de flores. Esta lista se muestra luego utilizando un bucle e índices for-bucle. La declaración principal en el código es:

VTR.push_back ("Cornflower");

Esta expresión agrega otro nombre de flor único a la lista de vectores. Ahora hay seis elementos en el vector. El siguiente segmento de código muestra el conjunto de seis elementos, utilizando un for-bucle e iteradores.

Empuje hacia atrás al vector vacío

Un vector no siempre debe crearse con elementos. Se puede crear un vector, vacío. La función miembro push_back () todavía se puede usar para alimentar elementos a un vector vacío. El siguiente código ilustra esto:

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorvtr;
VTR.push_back ("Blue Throatwort");
VTR.push_back ("BottleBrush");
VTR.push_back ("brodiaea");
para (int i = 0; icout<cout<regresar 0;

La salida es:

Blue Throatwort, BottleBrush, Brodiaea,

En la función main (), la primera declaración declara un vector vacío. Las siguientes tres declaraciones alimentan al vector con tres nombres de flores, utilizando la función push_back (). El segmento de código que sigue muestra los tres valores del vector.

Inserción

Dos funciones simplificadas para insertar en un vector son:

a.Insertar (P, T)
a.Insertar (P, RV)

donde 'a' es el nombre de un vector y p es un iterador que apunta al elemento del cual tendrá lugar el inserto. Estas funciones se utilizan de manera similar, como se ilustra en el siguiente ejemplo:

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorvtr = "Blue Throatwort", "BottleBrush", "brodiaea", "escoba", "columbine";
vector :: iterador p = vtr.fin();
vector :: iterator pret = vtr.insertar (P, "Cornflower");
para (int i = 0; icout<cout<cout<< *pRet<regresar 0;

La salida es:

Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine, Cornflower,
florecimiento de maíz

Las dos declaraciones especiales en este código son:

vector:: iterador p = vtr.fin();
vector:: iterator pret = vtr.insertar (P, "Cornflower");

La primera declaración aquí devuelve un iterador que apunta justo después del último elemento del vector. Después de la inserción, el iterador regresó, apunta al elemento insertado. En este caso, el iterador devuelto es. La expresión, *pret en el código, obtiene el valor apuntado por pretén.

a.Insertar (P, N, T)

Esto inserta N de los mismos valores T. En este caso, la inserción debe tener lugar al final, como en el siguiente código:

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorvtr = "Blue Throatwort", "BottleBrush", "brodiaea", "escoba", "columbine";
vector :: iterador p = vtr.fin();
vector :: iterator pret = vtr.insertar (P, 3, "Cornflower");
para (int i = 0; icout<cout<cout<regresar 0;

La salida es:

Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine, Cornflewrower, Cornflower, Cornflower,
5

Dos nuevas declaraciones de interés en este programa son:

vector:: iterator pret = vtr.insertar (P, 3, "Cornflower");
y
cout << pRet - vtr.begin() << endl;

La primera declaración aquí inserta 3 elementos de "Cornflower". La segunda instrucción calcula y devuelve el índice correspondiente al iterador devuelto por la función Insert (). Este iterador apunta al primer elemento de los elementos insertados.

a.insertar (p, i, j)

Esto inserta una gama de elementos desde un vector similar hasta el vector de interés. Yo y J somos iteradores. El elemento indicado por j no está insertado. Tal rango se denota por [i, j) . En la situación de agregar, el rango debe insertarse en la parte posterior. El siguiente programa ilustra esto:

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorVec = "Cornflower", "Corsage Orchid", "Dill", "Drumstick", "FoxGlove";
vector :: iterator itb = vec.comenzar();
itb ++;
vector :: iterator ite = vec.fin();
ite--; ite--;
vectorvtr = "Blue Throatwort", "BottleBrush", "brodiaea", "escoba", "columbine";
vector :: iterador p = vtr.fin();
vector :: iterator pret = vtr.insertar (p, itb, ite);
para (int i = 0; icout<cout<cout<regresar 0;

La salida es:

Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine, Corsage Orchid, Eneldo,
5

La segunda declaración en la función Main () devuelve un iterador que apunta a "Cornflower". La tercera declaración hace que este iterador apunte a "Orchid Corsage". La declaración después de devolver a un iterador que apunta justo después de "FoxGlove". La declaración siguiente hace que este iterador apunte a "Drumstick". Entonces el rango es ahora,

"Orchid Corsage", "Eneldo", "Drumstick"

correspondiente a [itb, ite) . Sin embargo, el rango insertado es ("Orchid de Corsage", "eneldo") como se explicó anteriormente.

a.Insertar (P, IL)

Se puede insertar una lista literal en la parte posterior del vector. En este caso, se inserta el último elemento de la lista. El siguiente programa ilustra esto:

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorvtr = "Blue Throatwort", "BottleBrush", "brodiaea", "escoba", "columbine";
vector :: iterador p = vtr.fin();
vector :: iterator pret = vtr.insertar (p, "orquídea de corsage", "eneldo", "tambalina");
para (int i = 0; icout<cout<cout<regresar 0;

La salida es:

Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine, Corsage Orchid, Dill, Drumstick,
5

La declaración especial en este programa es:

vector:: iterator pret = vtr.insertar (p, "orquídea de corsage", "eneldo", "tambalina");

La lista insertada es:

"Orchid de Corsage", "Dill", "Drumstick"

El iterador devuelto apunta al primer elemento de la lista insertada.

Emplárgico

Emplace es como un inserto. Desde que este artículo trata de agregar, el Emplace debe tener lugar en la parte posterior del vector.

a.Emplace (P, args)

Esta es la función miembro simplificada de Emplace (). P es un iterador, que apunta al elemento, frente al cual se inserta el nuevo elemento. La función devuelve un iterador que apunta al elemento insertado. El siguiente programa ilustra esto:

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorvtr = "Blue Throatwort", "BottleBrush", "brodiaea", "escoba", "columbine";
vector :: iterador p = vtr.fin();
vector :: iterator pret = vtr.Emplace (P, "Cornflower");
para (int i = 0; icout<cout<cout<< *pRet<regresar 0;

La salida es:

Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine, Cornflower,
florecimiento de maíz

La declaración especial en este programa es:

vector:: iterator pret = vtr.Emplace (P, "Cornflower");

a.emplace_back (args)

Aquí, 'A' es el nombre del vector. emplace_back () es como push_back (). Agrega un elemento al vector. No devuelve un iterador. Devuelve una referencia al elemento insertado. El siguiente programa ilustra su uso:

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorvtr = "Blue Throatwort", "BottleBrush", "brodiaea", "escoba", "columbine";
para (int i = 0; icout<cout<VTR.emplace_back ("Cornflower");
para (vector :: iterator it = vtr.comenzar(); él != VTR.fin(); IT ++)
cout<< *it << ", ";
cout<regresar 0;

La salida es:

Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine,
Blue Throatwort, BottleBrush, Brodiaea, Broom, Columbine, Cornflower,

La declaración principal en el programa es:

VTR.push_back ("Cornflower");

Esta expresión agrega otro nombre de flor único a la lista de vectores. Ahora hay seis elementos en el vector. El siguiente segmento de código en el programa muestra el conjunto de seis elementos, utilizando un bucle e iteradores for-for-bucle.

Emplace de regreso al vector vacío

Un vector no siempre debe crearse con elementos. Se puede crear un vector, vacío. La función miembro emplace_back () todavía se puede usar para alimentar elementos a un vector vacío. El siguiente código ilustra esto:

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
int main ()

vectorvtr;
cadena str1 = vtr.emplace_back ("Blue Throatwort");
cadena str2 = vtr.emplace_back ("BottleBrush");
cadena str3 = vtr.emplace_back ("brodiaea");
cout<< str1 <cout<< str2 <cout<< str3 <regresar 0;

La salida es:

Blue Throatwort
escobilla
brodiaea

En la función main (), la primera declaración declara un vector vacío. Las siguientes tres declaraciones alimentan al vector con tres nombres de flores, utilizando la función emplace_back (). El segmento de código que sigue muestra los tres valores del vector.

Nota; Una referencia devuelta es recibida por el tipo de elemento.

Conclusión

Un solo elemento se puede agregar a un vector con las funciones de miembro de vector push_back () y emplace_back (). La función de miembro insert () también se puede usar en sus diferentes formularios sobrecargados. La función insert () funciona con iteradores.