Vektors C ++ standarta veidņu bibliotēkā (STL) ar piemēru

Satura rādītājs:

Anonim

Kas ir C ++ vektors?

C ++ VECTOR ir dinamisks masīvs spēj izmēru automātiski. Lieluma maiņa notiek pēc tam, kad elements ir pievienots vai izdzēsts no vektora. Konteiners automātiski apstrādā krātuvi. Vektora elementi tiek glabāti blakus krātuvē. Tas ļauj C ++ programmētājiem piekļūt vektora elementiem un šķērsot tos, izmantojot iteratorus.

Jauno datu ievietošana vektorā tiek veikta tā beigās. Tas prasa atšķirīgu laiku. Elementa noņemšana no vektora prasa nemainīgu laiku. Iemesls ir tāds, ka nav nepieciešams mainīt vektora izmēru. Elementa ievietošana vai dzēšana vektora sākumā prasa lineāru laiku.

Šajā C ++ apmācībā jūs uzzināsiet:

  • Kas ir C ++ vektors?
  • Kad lietot vektoru?
  • Kā inicializēt vektorus C ++
  • Iteratori
  • Modifikatori
  • 1. piemērs
  • 2. piemērs
  • Jauda
  • 3. piemērs

Kad lietot vektoru?

C ++ vektors jāizmanto šādos apstākļos:

  • Risinot datu elementus, kas konsekventi mainās.
  • Ja datu lielums pirms sākuma nav zināms, vektoram nebūs jāiestata konteinera maksimālais lielums.

Kā inicializēt vektorus C ++

Vektoru sintakse C ++ ir:

vector  name (items)
  • Kā parādīts iepriekš, mēs sākam ar vektora atslēgvārdu.
  • Datu tips ir vektorā saglabājamo elementu datu tips.
  • Nosaukums ir vektora vai datu elementu nosaukums.
  • Vienumi apzīmē vektora datu elementu skaitu. Šis parametrs nav obligāts.

Iteratori

Iteratoru mērķis ir palīdzēt mums piekļūt vektorā saglabātajiem elementiem. Tas ir objekts, kas darbojas kā rādītājs. Šeit ir kopīgi iteratori, kurus atbalsta C ++ vektori:

  • vektors :: begin (): tas dod iteratoru, kas norāda uz vektora pirmo elementu.
  • vektors :: end (): tas dod atkārtotāju, kas norāda uz vektora pagātnes beigu elementu.
  • vektors :: cbegin (): tas ir tas pats, kas vektors :: begin (), taču tam nav iespēju modificēt elementus.
  • vector :: cend (): tas ir tas pats, kas vector :: end (), bet nevar modificēt vektora elementus.

Modifikatori

Modifikatori tiek izmantoti, lai mainītu norādītā datu veida nozīmi. Šeit ir izplatītākie modifikatori C ++:

  • vector :: push_back (): Šis modifikators izstumj elementus no aizmugures.
  • vector :: insert (): jaunu elementu ievietošanai vektorā noteiktā vietā.
  • vector :: pop_back (): Šis modifikators noņem vektora elementus no aizmugures.
  • vector :: erase (): to izmanto elementu diapazona noņemšanai no norādītās vietas.
  • vector :: clear (): Tas noņem visus vektora elementus.

1. piemērs

#include #include using namespace std;int main(){vector nums;for (int a = 1; a <= 5; a++)nums.push_back(a);cout << "Output from begin and end: ";for (auto a = nums.begin(); a != nums.end(); ++a)cout << *a << " ";cout << "\nOutput from cbegin and cend: ";for (auto a = nums.cbegin(); a != nums.cend(); ++a)cout << *a << " ";return 0;}

Izeja:

Šeit ir koda ekrānuzņēmums:

Koda skaidrojums:

  1. Iekļaujiet mūsu kodā iostream galvenes failu. Tas ļaus mums lasīt no konsoles un rakstīt tajā.
  2. Iekļaujiet vektora galvenes failu mūsu kodā. Tas ļaus mums strādāt ar vektoriem C ++.
  3. Iekļaujiet standarta nosaukumvietu, lai izmantotu tās klases un funkcijas, to neizsaucot.
  4. Izsauciet galveno () funkciju, kurā jāpievieno programmas loģika.
  5. {Atzīmē galvenās () funkcijas pamatteksta sākumu.
  6. Pasludiniet vektoru ar nosaukumu nums, lai saglabātu veselu skaitļu kopu.
  7. Izveidojiet for ciklu, lai palīdzētu mums atkārtot vektoru. Mainīgais palīdzēs mums atkārtot pār vektoru elementiem, no 1 st līdz 5 th elementiem.
  8. Iebīdiet elementus vektora num no aizmugures. Katram atkārtojumam vektorā pievienos mainīgā a pašreizējo vērtību, kas ir no 1 līdz 5.
  9. Izdrukājiet tekstu konsolē
  10. Izmantojiet iteratora mainīgo a, lai atkārtotu vektoru summas elementus no sākuma līdz pagātnes beigām. Ņemiet vērā, ka mēs izmantojam iteratorus vector :: begin () un vector :: end ().
  11. Katrā atkārtojumā konsolē drukājiet vērtības, uz kurām norāda iteratora mainīgais a.
  12. Izdrukājiet tekstu konsolē. \ N ir jauns līnijas raksturs, kas pārvieto kursoru uz jauno līniju, lai no turienes drukātu.
  13. Izmantojiet iteratora mainīgo, lai atkārtotu vektoru summas elementus no sākuma līdz pagātnes beigām. Ņemiet vērā, ka mēs izmantojam iteratorus vector :: cbegin () un vector :: cend ().
  14. Katrā iterācijā konsolē izdrukājiet vērtības, uz kurām norāda iteratora mainīgais a.
  15. Ja programma darbojas veiksmīgi, galvenajai funkcijai jāatgriež vērtība.
  16. Galvenās () funkcijas ķermeņa beigas.

2. piemērs

#include #include using namespace std;int main(){vector nums;nums.assign(5, 1);cout << "Vector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.push_back(2);int n = nums.size();cout << "\nLast element: " << nums[n - 1];nums.pop_back();cout << "\nVector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.insert(nums.begin(), 7);cout << "\nFirst element: " << nums[0];nums.clear();cout << "\nSize after clear(): " << nums.size();}

Izeja:

Šeit ir koda ekrānuzņēmums:

Koda skaidrojums:

  1. Iekļaujiet iostream galvenes failu mūsu kodā, lai izmantotu tā funkcijas.
  2. Iekļaujiet vektora galvenes failu mūsu kodā, lai izmantotu tā funkcijas.
  3. Iekļaujiet standarta nosaukumvietu, lai izmantotu tās klases, to neizsaucot.
  4. Izsauciet galveno () funkciju. Programmas loģika jāpievieno tās iekšpusē.
  5. Galvenās () funkcijas ķermeņa sākums.
  6. Pasludiniet vektoru ar nosaukumu nums, lai saglabātu dažas veselu skaitļu vērtības.
  7. Glabājiet 5 elementus vektoru skaitļos. Katrs ar vērtību 1.
  8. Izdrukājiet tekstu konsolē
  9. Izmantojiet iteratora mainīgo a, lai atkārtotu vektoru skaitļu elementus.
  10. Katrā iterācijā uz konsoles izdrukājiet vektoru summas vērtības.
  11. Pievienojiet vērtību 2 vektora skaitļa beigām.
  12. Deklarējiet vesela skaitļa mainīgo n, lai saglabātu vektoru skaitļu lielumu.
  13. Izdrukājiet vektoru skaitļu pēdējo vērtību līdzās citam tekstam. Tam jāatgriež 2.
  14. Noņemiet pēdējo elementu no vektoru skaitļiem. 2 tiks noņemtas.
  15. Drukājiet tekstu konsolē. \ N pārvieto kursoru uz jauno rindu, lai tur izdrukātu tekstu.
  16. Izmantojiet iteratora mainīgo a, lai atkārtotu vektoru skaitļu elementus.
  17. Katrā iterācijā uz konsoles izdrukājiet vektoru summas vērtības.
  18. Ievietojiet vērtību 7 vektora skaitļu sākumā.
  19. Izdrukājiet vektoru skaitļu pirmo vērtību līdzās citam tekstam. Tam vajadzētu atgriezties 7.
  20. Dzēsiet visus elementus no vektoru skaitļiem.
  21. Pēc visa satura notīrīšanas izdrukājiet vektora num lielumu blakus citam tekstam. Tam jāatgriež 0.
  22. Galvenās () funkcijas ķermeņa beigas.

Jauda

Lai noteiktu vektora ietilpību, izmantojiet šīs funkcijas:

  • Izmērs () - atgriež vienumu skaitu vektorā.
  • Max_size () -Tas atgriež lielāko vienumu skaitu, ko vektoris var saglabāt.
  • Capacity () - tas atgriež vektoram piešķirtās atmiņas daudzumu.
  • Resize () - konteinera izmērs tiek mainīts, lai tajā būtu n vienumi. Ja vektora pašreizējais izmērs ir lielāks par n, aizmugurējie vienumi tiks noņemti no vektora. Ja vektora pašreizējais izmērs ir mazāks par n, vektora aizmugurē tiks pievienoti papildu vienumi.
  • Empty () -i t atgriež vērtību true, ja vektors ir tukšs, pretējā gadījumā tas atgriež false.

3. piemērs

#include #include using namespace std;int main() {vector vector1;for (int x = 1; x <= 10; x++)vector1.push_back(x);cout << "Vector size: " << vector1.size()<< endl;cout << "Vector capacity: " << vector1.capacity() << endl;cout << "Maximum size of vector: " << vector1.max_size()<< endl;vector1.resize(5);cout << "Vector size after resizing: " << vector1.size() << endl;if (vector1.empty() == false)cout << "Vector is not empty"<

Izeja:

Šeit ir koda ekrānuzņēmums:

Koda skaidrojums:

  1. Iekļaujiet iostream galvenes failu mūsu kodā, lai izmantotu tā funkciju.
  2. Iekļaujiet vektora galvenes failu mūsu kodā, lai izmantotu tā funkcijas.
  3. Iekļaujiet standarta koda telpu mūsu kodā, lai izmantotu tās klases, to neizsaucot.
  4. Izsauciet galveno () funkciju. Šīs funkcijas pamattekstā jāpievieno programmas loģika.
  5. Lai saglabātu veselus skaitļus, izveidojiet vektoru ar nosaukumu vector1.
  6. Izmantojiet a for ciklu, lai izveidotu mainīgo x ar vērtībām no 1 līdz 10.
  7. Ievietojiet mainīgā x vērtības vektorā.
  8. Drukājiet vektora izmēru līdzās citam tekstam konsolē.
  9. Izdrukājiet vektora ietilpību blakus citam tekstam konsolē.
  10. Izdrukājiet maksimālo vienumu skaitu, ko vektoris var turēt līdzās citam tekstam konsolē.
  11. Mainiet vektora izmēru, lai tajā būtu tikai 5 elementi.
  12. Izdrukājiet jauno vektora izmēru līdzās citam tekstam.
  13. Pārbaudiet, vai vektors nav tukšs.
  14. Drukājiet tekstu konsolē, ja vektors nav tukšs.
  15. Izmantojiet citu paziņojumu, lai norādītu, kā rīkoties, ja vektors ir tukšs.
  16. Teksts, kas drukājams uz konsoles, ja vektors ir tukšs.
  17. Pēc sekmīgas pabeigšanas programmai ir jāatgriež vērtība.
  18. Galvenās () funkcijas ķermeņa beigas.

Kopsavilkums:

  • C ++ vektors ir dinamisks masīvs, kas spēj automātiski mainīt lielumu, kad tam tiek pievienots vai izdzēsts elements.
  • Vektora krātuvi konteiners apstrādā automātiski.
  • Vektora elementi tiek glabāti blakus esošajā krātuvē, lai tiem piekļūtu, pēc tam tos šķērsojot, izmantojot iteratorus.
  • Jauno datu ievietošana vektorā tiek veikta tā beigās.
  • Datu ievietošana vektorā prasa atšķirīgu laiku.
  • Elementa noņemšana no vektora prasa nemainīgu laiku.
  • Elementa ievietošana vai dzēšana sākumā prasa lineāru laiku.
  • Strādājot ar konsekventi mainīgiem datu elementiem, jāizmanto vektori.
  • Varat arī izmantot vektorus, ja datu lielums pirms sākuma nav zināms.