Jak dołączasz do wektora w c++?

Jak dołączasz do wektora w c++?
Dołączenie do wektora oznacza dodanie jednego lub więcej elementów z tyłu wektora. Wektor C ++ ma funkcje członkowskie. Funkcje członka, które można użyć do dołączania, to: push_back (), insert () i emplace (). Oficjalną funkcją, którą należy użyć do dołączania, jest push_back (). Zastosowanie tych trzech funkcji członka do dołączenia do wektora C ++ wyjaśniono w tym artykule.

Aby użyć wektora, biblioteka wektorów musi być uwzględniona na górze programu, z

#włączać

Wszystkie kody wektorowe dla tego artykułu znajdują się w funkcji C ++ Main ().

Treść artykułu

  • Odepchnąć się
  • Wkładanie
  • Emplace
  • Wniosek

Odepchnąć się

Pojedynczy element można zepchnąć z tyłu wektora. Istnieją dwie składni dla funkcji członka push_back (), które są:

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

Oboje zwracają pustkę i są używane podobnie.

Poniższy kod zawiera wektor kwiatów w Wielkiej Brytanii. Jeszcze jeden kwiat to push_back (), i.mi., dołączone do wektora. Wektor jest wektorem ciągów klasy ciągów.

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

vectorVtr = „Blue Throatwort”, „Bottlebrush”, „Brodiaea”, „Broom”, „Columbine”;
dla (int i = 0; iCout<Cout<vtr.push_back („Cornflower”);
for (wektor :: iterator it = vtr.zaczynać(); To != vtr.koniec(); it ++)
Cout<< *it << ", ";
Cout<powrót 0;

Wyjście to:

Blue Throatwort, Bottle Bottle, Brodiaea, miotła, Columbine,
Blue Throatwort, Bottle Bottle, Brodiaea, Broom, Columbine, Cornflower,

Program zaczyna się od niezbędnych dyrektyw włączenia. Następnie jest funkcja main () z całym kodem wektorowym. W funkcji Main () zadeklarowano wektor pięciu strun nazw kwiatów. Ta lista jest następnie wyświetlana za pomocą pętli i indeksów. Główne stwierdzenie w kodzie jest:

vtr.push_back („Cornflower”);

To wyrażenie dołącza kolejną nazwę pojedynczego kwiatu do listy wektorów. W wektorze jest teraz sześć elementów. Kolejny segment kodu wyświetla zestaw sześciu elementów, używając pętli i iteratorów.

Odepchnij do pustego wektora

Wektor nie zawsze należy tworzyć z elementami. Wektor można utworzyć, puste. Funkcję elementu push_back () może być nadal używana do karmienia elementów do pustego wektora. Poniższy kod to ilustruje:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

VectorVTR;
vtr.push_back („Blue Throatwort”);
vtr.push_back („Bottle Bothbrush”);
vtr.push_back („Brodiaea”);
dla (int i = 0; iCout<Cout<powrót 0;

Wyjście to:

Blue Throatwort, Bottle Bottle, Brodiaea,

W funkcji Main () pierwsza instrukcja deklaruje pusty wektor. Następne trzy instrukcje zasilą wektor trzema nazwami kwiatów, używając funkcji push_back (). Poniższy segment kodu wyświetla trzy wartości wektora.

Wkładanie

Dwie uproszczone funkcje wstawienia do wektora to:

A.Wstaw (P, T)
A.Wstaw (P, RV)

gdzie „A” to nazwa wektora, a P jest iteratorem wskazującym element przed którym nastąpi wkładka. Funkcje te są używane w podobny sposób, jak pokazano w poniższym przykładzie:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

vectorVtr = „Blue Throatwort”, „Bottlebrush”, „Brodiaea”, „Broom”, „Columbine”;
wektor :: iterator p = vtr.koniec();
wektor :: iterator pret = vtr.wstaw (P, „Cornflower”);
dla (int i = 0; iCout<Cout<Cout<< *pRet<powrót 0;

Wyjście to:

Blue Throatwort, Bottle Bottle, Brodiaea, Broom, Columbine, Cornflower,
chaber

Dwa specjalne stwierdzenia w tym kodzie to:

wektor:: iterator p = vtr.koniec();
wektor:: iterator Pret = vtr.wstaw (P, „Cornflower”);

Pierwsze stwierdzenie tutaj zwraca iterator, który wskazuje tuż po ostatnim elemencie wektora. Po wstawieniu powrócił iterator wskazuje na włożony element. W tym przypadku powrót iterator jest pret. Wyrażenie *pret w kodzie, uzyskuje wartość wskazaną przez pret.

A.Wstaw (P, N, T)

To wstawiono n tych samych wartości t. W takim przypadku insercja musi mieć miejsce na końcu, jak w następującym kodzie:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

vectorVtr = „Blue Throatwort”, „Bottlebrush”, „Brodiaea”, „Broom”, „Columbine”;
wektor :: iterator p = vtr.koniec();
wektor :: iterator pret = vtr.wstaw (P, 3, „Cornflower”);
dla (int i = 0; iCout<Cout<Cout<powrót 0;

Wyjście to:

Blue Throatwort, Bottle Bottle, Brodiaea, Broom, Columbine, Cornflower, Cornflower, Cornflower,
5

Dwa nowe oświadczenia zainteresowane tym programem to:

wektor:: iterator Pret = vtr.wstaw (P, 3, „Cornflower”);
I
Cout << pRet - vtr.begin() << endl;

Pierwsze stwierdzenie tutaj wstawia 3 elementy „Cornflower”. Druga instrukcja oblicza i zwraca indeks odpowiadający iteratorowi zwróconej przez funkcję insert (). Ten iterator wskazuje na pierwszy element włożonych elementów.

A.Wstaw (P, I, J)

To wprowadza szereg elementów od podobnego wektora do wektora zainteresowania. Ja i J to iteratory. Element wskazany przez J nie jest wstawiany. Taki zakres jest oznaczony przez [i, j) . W sytuacji dołączania zasięg musi zostać włożony z tyłu. Poniższy program ilustruje to:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

vectorVec = „Cornflower”, „Corsage Orchid”, „Dill”, „Drumstick”, „Foxglove”;
wektor :: iterator ITB = VEC.zaczynać();
ITB ++;
wektor :: iterator Ite = vec.koniec();
Ite--; Ite--;
vectorVtr = „Blue Throatwort”, „Bottlebrush”, „Brodiaea”, „Broom”, „Columbine”;
wektor :: iterator p = vtr.koniec();
wektor :: iterator pret = vtr.wstaw (P, ITB, ITE);
dla (int i = 0; iCout<Cout<Cout<powrót 0;

Wyjście to:

Blue Throatwort, Bottle Stush, Brodiaea, Broom, Columbine, Corsage Orchid, Dill,
5

Drugie stwierdzenie w funkcji Main () zwraca iterator, który wskazuje na „Cornflower”. Trzecie stwierdzenie sprawia, że ​​ten iterator wskazuje na „Corsage Orchid”. Oświadczenie po powrocie iteratora, który wskazuje tuż po „Foxglove”. Poniższe stwierdzenie sprawia, że ​​ten iterator wskazuje na „Drumstick”. Więc zasięg jest teraz,

„Corsage Orchid”, „Dill”, „Drumstick”

odpowiadające [ITB, ITE) . Jednak włożony zasięg to („Corsage Orchid”, „Dill”), jak wyjaśniono powyżej.

A.Wstaw (P, IL)

Lista dosłowna można włożyć z tyłu wektora. W takim przypadku wkładany jest ostatni element listy. Poniższy program ilustruje to:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

vectorVtr = „Blue Throatwort”, „Bottlebrush”, „Brodiaea”, „Broom”, „Columbine”;
wektor :: iterator p = vtr.koniec();
wektor :: iterator pret = vtr.insert (P, „Corsage Orchid”, „Dill”, „Drumstick”);
dla (int i = 0; iCout<Cout<Cout<powrót 0;

Wyjście to:

Blue Throatwort, Bottle Stush, Brodiaea, Broom, Columbine, Corsage Orchid, Dill, Drumstick,
5

Specjalne oświadczenie w tym programie jest:

wektor:: iterator Pret = vtr.insert (P, „Corsage Orchid”, „Dill”, „Drumstick”);

Lista wstawiona to:

„Corsage Orchid”, „Dill”, „Drumstick”

Zwrócony iterator wskazuje na pierwszy element włożonej listy.

Emplace

Emplace jest jak wstawka. Ponieważ ten artykuł dotyczy dołączania, emplace musi odbyć się z tyłu wektora.

A.emplace (p, args)

To jest uproszczona funkcja członkowska emplace (). P jest iteratorem, wskazującym na element, przed którym wkładany jest nowy element. Funkcja zwraca iterator wskazujący na włożony element. Poniższy program ilustruje to:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

vectorVtr = „Blue Throatwort”, „Bottlebrush”, „Brodiaea”, „Broom”, „Columbine”;
wektor :: iterator p = vtr.koniec();
wektor :: iterator pret = vtr.emplace (p, „cornflower”);
dla (int i = 0; iCout<Cout<Cout<< *pRet<powrót 0;

Wyjście to:

Blue Throatwort, Bottle Bottle, Brodiaea, Broom, Columbine, Cornflower,
chaber

Specjalne oświadczenie w tym programie jest:

wektor:: iterator Pret = vtr.emplace (p, „cornflower”);

A.emplace_back (args)

Tutaj „A” to nazwa wektora. emplace_back () jest jak push_back (). Dodaje element do wektora. Nie zwraca iteratora. Zwraca odniesienie do włożonego elementu. Poniższy program ilustruje jego użycie:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

vectorVtr = „Blue Throatwort”, „Bottlebrush”, „Brodiaea”, „Broom”, „Columbine”;
dla (int i = 0; iCout<Cout<vtr.emplace_back („cornflower”);
for (wektor :: iterator it = vtr.zaczynać(); To != vtr.koniec(); it ++)
Cout<< *it << ", ";
Cout<powrót 0;

Wyjście to:

Blue Throatwort, Bottle Bottle, Brodiaea, miotła, Columbine,
Blue Throatwort, Bottle Bottle, Brodiaea, Broom, Columbine, Cornflower,

Głównym stwierdzeniem w programie jest:

vtr.push_back („Cornflower”);

To wyrażenie dołącza kolejną nazwę pojedynczego kwiatu do listy wektorów. W wektorze jest teraz sześć elementów. Kolejny segment kodu w programie wyświetla zestaw sześciu elementów, używając pętli i iteratorów.

Zostać z powrotem do pustego wektora

Wektor nie zawsze należy tworzyć z elementami. Wektor można utworzyć, puste. Funkcję elementu emplace_back () może być nadal używana do karmienia elementów do pustego wektora. Poniższy kod to ilustruje:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

VectorVTR;
String Str1 = vtr.emplace_back („blue throatwort”);
String Str2 = vtr.emplace_back („butelka”);
String Str3 = vtr.emplace_back („Brodiaea”);
Cout<< str1 <Cout<< str2 <Cout<< str3 <powrót 0;

Wyjście to:

Niebieski grożenie
szczotka do butelek
Brodiaea

W funkcji Main () pierwsza instrukcja deklaruje pusty wektor. Następne trzy instrukcje zasilą wektor trzema nazwami kwiatów, używając funkcji emplace_back (). Poniższy segment kodu wyświetla trzy wartości wektora.

Notatka; Zwrócone odniesienie jest odbierane przez rodzaj elementu.

Wniosek

Jeden element można dołączyć do funkcji wektora z funkcjami członkowski push_back () i emplace_back (). Funkcję elementu insert () może być również używana w różnych przeciążonych formach. Funkcja Insert () działa z iteratorami.