Come si aggiungono a un vettore in C++?

Come si aggiungono a un vettore in C++?
Aggiungere a un vettore significa aggiungere uno o più elementi sul retro del vettore. Il vettore C ++ ha funzioni dei membri. Le funzioni del membro che possono essere utilizzate per l'appendimento sono: push_back (), insert () ed emplace (). La funzione ufficiale da utilizzare per aggiungere è push_back (). In questo articolo è spiegato l'uso di queste tre funzioni membri per aggiungere un vettore C ++.

Per utilizzare un vettore, la libreria vettoriale deve essere inclusa nella parte superiore del programma, con

#includere

Tutti i codici vettoriali per questo articolo sono nella funzione C ++ main ().

Contenuto dell'articolo

  • Respingere
  • Inserimento
  • EMPIPACHI
  • Conclusione

Respingere

Un singolo elemento può essere spinto sul retro di un vettore. Esistono due sintassi per le funzioni del membro push_back (), che sono:

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

Entrambi restituiscono vuoto e sono usati in modo simile.

Il seguente codice ha un vettore di fiori in Gran Bretagna. Un altro fiore è push_back (), i.e., aggiunto al vettore. Il vettore è un vettore di stringhe della classe stringa.

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvtr = "blu golatwort", "bottlebrush", "brodiaea", "broom", "columbine";
per (int i = 0; icout<cout<VTR.push_back ("cornflower");
per (Vector :: iterator IT = VTR.inizio(); Esso != vtr.FINE(); It ++)
cout<< *it << ", ";
cout<restituzione 0;

L'output è:

GHITTURA BLU BLA, BRUSH, BRODIAEA, GIOM, COLUMBINE,
Bluwort blu, bottiglia, brodiaea, ginnastica, colombina, flusso di mais,

Il programma inizia con le necessarie direttive di inclusione. Quindi c'è la funzione principale () con tutto il codice vettoriale. Nella funzione principale (), viene dichiarato un vettore di cinque stringhe di nomi di fiori. Questo elenco viene quindi visualizzato utilizzando un per anello e indici. La dichiarazione principale nel codice è:

VTR.push_back ("cornflower");

Questa espressione aggiunge un altro nome di fiore singolo all'elenco vettoriale. Ora ci sono sei elementi nel vettore. Il segmento di codice successivo visualizza il set di sei elementi, utilizzando un per anello e iteratori.

Spingere indietro al vettore vuoto

Un vettore non deve essere sempre creato con elementi. Un vettore può essere creato, vuoto. La funzione membro push_back () può ancora essere utilizzata per alimentare gli elementi a un vettore vuoto. Il seguente codice illustra questo:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvtr;
VTR.push_back ("blu goatwort");
VTR.push_back ("bottlebrush");
VTR.push_back ("brodiaea");
per (int i = 0; icout<cout<restituzione 0;

L'output è:

GHOLO BLU BLU, bottiglia, brodiaea,

Nella funzione principale (), la prima istruzione dichiara un vettore vuoto. Le tre dichiarazioni successive alimentano il vettore con tre nomi di fiori, usando la funzione push_back (). Il segmento di codice che segue visualizza i tre valori del vettore.

Inserimento

Due funzioni semplificate per l'inserimento di un vettore sono:

UN.inserire (p, t)
UN.Inserisci (P, RV)

dove "a" è il nome di un vettore e p è un iteratore che punta all'elemento di fronte al quale si verificherà l'inserto. Queste funzioni sono usate in modo simile, come illustrato nel seguente esempio:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvtr = "blu golatwort", "bottlebrush", "brodiaea", "broom", "columbine";
Vector :: iterator P = VTR.FINE();
Vector :: iterator pret = vtr.inserire (p, "flusso di mais");
per (int i = 0; icout<cout<cout<< *pRet<restituzione 0;

L'output è:

Bluwort blu, bottiglia, brodiaea, ginnastica, colombina, flusso di mais,
fiordaliso

Le due dichiarazioni speciali in questo codice sono:

vettore:: iterator p = vtr.FINE();
vettore:: iterator pret = vtr.inserire (p, "flusso di mais");

La prima affermazione qui restituisce un iteratore che punta subito dopo l'ultimo elemento del vettore. Dopo l'inserimento, l'iteratore è tornato, punta all'elemento inserito. In questo caso, l'iteratore restituito è pret. L'espressione, *pret nel codice, ottiene il valore indicato da pret.

UN.Inserisci (P, N, T)

Questo inserisce n degli stessi valori t. In questo caso, l'inserimento deve avvenire alla fine, come nel seguente codice:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvtr = "blu golatwort", "bottlebrush", "brodiaea", "broom", "columbine";
Vector :: iterator P = VTR.FINE();
Vector :: iterator pret = vtr.inserire (p, 3, "flusso di corn");
per (int i = 0; icout<cout<cout<restituzione 0;

L'output è:

gola blu, bottiglia, brodiaea, scopa, colombina, flusso di mais, flusso di mais, flusso di mais,
5

Due nuove dichiarazioni di interesse in questo programma sono:

vettore:: iterator pret = vtr.inserire (p, 3, "flusso di corn");
E
cout << pRet - vtr.begin() << endl;

La prima affermazione qui inserisce 3 elementi di "Cornflower". La seconda istruzione calcola e restituisce l'indice corrispondente all'iteratore restituito dalla funzione insert (). Questo iteratore punta al primo elemento degli elementi inseriti.

UN.inserisci (p, i, j)

Questo inserisce una serie di elementi da un vettore simile al vettore di interesse. Io e J siamo iteratori. L'elemento indicato da J non è inserito. Una tale gamma è indicata da [i, j) . Nella situazione dell'appendimento, l'intervallo deve essere inserito sul retro. Il seguente programma illustra questo:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvec = "cornflower", "corsage orchid", "aneto", "drumstick", "foxglove";
Vector :: iterator ITB = VEC.inizio();
ITB ++;
Vector :: iterator ite = vec.FINE();
ite--; ite--;
vectorvtr = "blu golatwort", "bottlebrush", "brodiaea", "broom", "columbine";
Vector :: iterator P = VTR.FINE();
Vector :: iterator pret = vtr.inserire (P, ITB, ite);
per (int i = 0; icout<cout<cout<restituzione 0;

L'output è:

GHITTURA BLU BLA, BRUSH BOTTONE, BRODIAEA, COSTA, Columbina, Orchidea per corde, aneto,
5

La seconda affermazione nella funzione principale () restituisce un iteratore che indica "Cornflower". La terza affermazione fa indicare questo iteratore a "Corsage Orchid". La dichiarazione dopo restituisce un iteratore che punta subito dopo "Foxglove". La dichiarazione seguente rende questo iteratore in "bacchetta". Quindi la gamma è ora,

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

corrispondente a [itb, ite) . Tuttavia, la gamma inserita è ("corde orchidea", "aneto") come spiegato sopra.

UN.Inserisci (P, IL)

Un elenco letterale può essere inserito sul retro del vettore. In questo caso, viene inserito l'ultimo elemento dell'elenco. Il seguente programma illustra questo:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvtr = "blu golatwort", "bottlebrush", "brodiaea", "broom", "columbine";
Vector :: iterator P = VTR.FINE();
Vector :: iterator pret = vtr.insert (p, "Corsage Orchid", "Dill", "Drumstick");
per (int i = 0; icout<cout<cout<restituzione 0;

L'output è:

GHOLO BLU BLA, BRUSH BOTTONE, BRODIAEA, GOOM, COLUMBINE, ORCHID CORSAGGIA, DILL, DRUMSTICK,
5

La dichiarazione speciale in questo programma è:

vettore:: iterator pret = vtr.insert (p, "Corsage Orchid", "Dill", "Drumstick");

L'elenco inserito è:

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

L'iteratore restituito punta al primo elemento dell'elenco inserito.

EMPIPACHI

EmPlace è come un inserto. Poiché questo articolo si occupa dell'appendimento, l'Emplace deve avvenire sul retro del vettore.

UN.emplace (p, args)

Questa è la funzione membro semplificata di EMPlace (). P è un iteratore, che indica l'elemento, davanti al quale viene inserito il nuovo elemento. La funzione restituisce un iteratore che punta all'elemento inserito. Il seguente programma illustra questo:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvtr = "blu golatwort", "bottlebrush", "brodiaea", "broom", "columbine";
Vector :: iterator P = VTR.FINE();
Vector :: iterator pret = vtr.EMPLETTH (P, "Cornflower");
per (int i = 0; icout<cout<cout<< *pRet<restituzione 0;

L'output è:

Bluwort blu, bottiglia, brodiaea, ginnastica, colombina, flusso di mais,
fiordaliso

La dichiarazione speciale in questo programma è:

vettore:: iterator pret = vtr.EMPLETTH (P, "Cornflower");

UN.emplace_back (args)

Qui, 'A' è il nome del vettore. emplace_back () è come push_back (). Aggiunge un elemento al vettore. Non restituisce un iteratore. Restituisce un riferimento all'elemento inserito. Il seguente programma ne illustra l'uso:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvtr = "blu golatwort", "bottlebrush", "brodiaea", "broom", "columbine";
per (int i = 0; icout<cout<VTR.emplace_back ("cornflower");
per (Vector :: iterator IT = VTR.inizio(); Esso != vtr.FINE(); It ++)
cout<< *it << ", ";
cout<restituzione 0;

L'output è:

GHITTURA BLU BLA, BRUSH, BRODIAEA, GIOM, COLUMBINE,
Bluwort blu, bottiglia, brodiaea, ginnastica, colombina, flusso di mais,

La dichiarazione principale nel programma è:

VTR.push_back ("cornflower");

Questa espressione aggiunge un altro nome di fiore singolo all'elenco vettoriale. Ora ci sono sei elementi nel vettore. Il segmento di codice successivo nel programma visualizza il set di sei elementi, utilizzando un per loop e iteratori.

Emperati al vettore vuoto

Un vettore non deve essere sempre creato con elementi. Un vettore può essere creato, vuoto. La funzione membro EMPlace_back () può ancora essere utilizzata per alimentare gli elementi a un vettore vuoto. Il seguente codice illustra questo:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

vectorvtr;
stringa str1 = vtr.emplace_back ("blu goatwort");
stringa str2 = vtr.emplace_back ("bottlebrush");
stringa str3 = vtr.emplace_back ("brodiaea");
cout<< str1 <cout<< str2 <cout<< str3 <restituzione 0;

L'output è:

Bluwatwort blu
bottiglia
brodiaea

Nella funzione principale (), la prima istruzione dichiara un vettore vuoto. Le tre dichiarazioni successive alimentano il vettore con tre nomi di fiori, usando la funzione EMPlace_back (). Il segmento di codice che segue visualizza i tre valori del vettore.

Nota; Un riferimento restituito viene ricevuto dal tipo di elemento.

Conclusione

Un singolo elemento può essere aggiunto a un vettore con le funzioni del membro vettoriale push_back () ed emplace_back (). La funzione membro insert () può anche essere utilizzata nelle sue diverse forme sovraccarichi. La funzione insert () funziona con iteratori.