30 primjera C++ vektora

30 Primjera C Vektora



U C++-u, Vector je jednodimenzionalna struktura podataka koja se dinamički povećava na temelju zahtjeva. Organizacija podataka (umetanje/modifikacija/brisanje) može se učinkovito izvršiti u ovoj strukturi podataka. Njegove primjene uključuju sljedeće:

  1. Predstavljanje matematičkih vektora u znanstvenim i inženjerskim primjenama
  2. Redovi čekanja, hrpe mogu se implementirati pomoću ove strukture podataka itd.

Većina uobičajenih CRUD operacija i funkcija koje se odnose na ovu podatkovnu strukturu detaljno su razmotrene u scenarijima sa sintaksom i isječcima koda.







Tema sadržaja:

  1. Umetanje elementa u vektor
  2. Umetanje više elemenata u vektor
  3. Pristupite elementima iz vektora
  4. Ažurirajte element u vektoru
  5. Uklonite određeni element iz vektora
  6. Ukloni sve elemente iz vektora
  7. Unija vektora
  8. Sjecište vektora
  9. Provjerite je li vektor prazan ili ne
  10. Pređite vektor koristeći Const_Iterator
  11. Pređite vektor koristeći Reverse_Iterator
  12. Gurnite elemente u vektor
  13. Izvucite elemente iz vektora
  14. Zamijenite vektore
  15. Dohvatite prvi element iz vektora
  16. Dohvatite zadnji element iz vektora
  17. Dodijelite nove vrijednosti vektoru
  18. Proširite vektor pomoću Emplace()
  19. Proširite vektor pomoću Emplace_Back()
  20. Maksimalni element vektora
  21. Minimalni element vektora
  22. Zbroj elemenata u vektoru
  23. Elementno množenje dvaju vektora
  24. Točkasti umnožak dvaju vektora
  25. Pretvorite skup u vektor
  26. Uklonite duplikate elemenata
  27. Pretvorite vektor u skup
  28. Uklonite prazne nizove
  29. Zapišite vektor u tekstualnu datoteku
  30. Stvorite vektor iz tekstualne datoteke

Umetanje elementa u vektor

The std::vector::insert() funkcija u C++ STL koristi se za umetanje elemenata na navedeno mjesto.



Sintaksa:

vektor. umetnuti ( položaj, element ) ;

Upotrijebimo ovu funkciju i proslijedimo prvu poziciju kao parametar koji određuje poziciju na koju se element mora umetnuti i dajmo element kao drugi parametar.



Funkcija begin() ovdje se može koristiti za vraćanje iteratora koji pokazuje na prvi element ulaznog vektora. Dodavanjem pozicije ovoj funkciji, element se umeće na tu poziciju.





Kreirajmo vektor 'student_names' tipa string i umetnimo dva niza na prvu i drugu poziciju, jedan za drugim, pomoću funkcije insert().

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Inicijalizacija vektora - imena učenika

vektor < niz > imena_učenika ;

cout << 'Postojeći vektor: \n ' ;

za ( auto ja : imena_učenika ) cout << ja << endl ;

// Umetnite 'Sravan Kumar' na prvo mjesto

imena_učenika. umetnuti ( imena_učenika. početi ( ) + 0 , 'Shravan Kumar' ) ;

// Umetnite 'Sravan Kumar' na drugu poziciju

imena_učenika. umetnuti ( imena_učenika. početi ( ) + 1 , 'Lalitha' ) ;

cout << 'Konačni vektor: \n ' ;

za ( auto j : imena_učenika ) cout << j << endl ;

}

Izlaz:

Prethodno je vektor 'imena učenika' bio prazan. Nakon umetanja, vektor sadrži dva elementa.



Umetanje više elemenata u vektor

Koristimo istu funkciju koja je std::vector::insert() u ovom scenariju. Ali moramo proslijediti dodatne/različite parametre istoj funkciji da bismo umetnuli više elemenata u vektor.

Scenarij 1: Umetanje jednog elementa više puta

U ovom scenariju dodajemo isti element više puta.

Sintaksa:

vektor. umetnuti ( položaj, veličina, element ) ;

Da bismo to učinili, moramo proslijediti veličinu kao drugi parametar funkciji insert(). Ukupno tri parametra koji se prosljeđuju ovoj funkciji.

Ovdje:

  1. Parametar položaja određuje položaj elementa koji treba umetnuti. Ako je veličina veća od 1, indeks početne pozicije bit će pozicija.
  2. Parametar veličine određuje koliko puta se element treba umetnuti.
  3. Parametar elementa uzima element koji treba umetnuti u vektor.

Razmotrite vektor 'student_names' s dva niza. Umetnite žice 'Lavanya' pet puta na drugu poziciju.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Inicijalizacija vektora - imena učenika

vektor < niz > imena_učenika { 'Shravan Kumar' , 'Lalitha' } ;

cout << 'Postojeći vektor: \n ' ;

za ( auto ja : imena_učenika ) cout << ja << endl ;

// Umetnite 'Lavanya' na drugu poziciju 5 puta

imena_učenika. umetnuti ( imena_učenika. početi ( ) + 1 , 5 , 'Lavanya' ) ;

cout << ' \n Konačni vektor: \n ' ;

za ( auto j : imena_učenika ) cout << j << endl ;

}

Izlaz:

U postojećem vektoru “Sravan Kumar” je na prvom, a “Lalitha” na drugom mjestu. Nakon što je pet puta ubacila “Lavanya” (s drugog mjesta na šesto mjesto), “Lalitha” se pomaknula na sedmo mjesto (zadnje).

Scenarij 2: Umetanje više elemenata

U ovom scenariju dodajemo različite elemente odjednom iz drugog vektora. Ovdje također koristimo istu funkciju, ali sintaksa i parametri će se promijeniti.

Sintaksa:

vektor. umetnuti ( položaj, prvi_iterator, drugi_iterator ) ;

Da bismo to učinili, moramo proslijediti veličinu kao drugi parametar funkciji insert(). Ukupno tri parametra koji se prosljeđuju ovoj funkciji.

Ovdje:

  1. Parametar položaja određuje položaj elementa koji treba umetnuti.
  2. 'First_iterator' specificira početnu poziciju s koje se elementi trebaju umetnuti (u osnovi, pomoću funkcije begin(), vraća se iterator koji pokazuje na prvi element koji je prisutan u spremniku).
  3. “Second_iterator” specificira krajnju poziciju do koje se elementi trebaju umetnuti (u osnovi, pomoću funkcije end(), vraća se iterator koji pokazuje pored zadnje točke koja je prisutna u spremniku).

Napravite dva vektora, “marks1” i “marks2”, cjelobrojnog tipa. Umetnite sve elemente koji su prisutni u vektoru “marks2” na prvu poziciju vektora “marks1”.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Inicijalizacija vektora - oznake1

vektor < int > oznake1 { 100 , 89 , 90 , 78 , 98 } ;

cout << 'Prvi vektor: \n ' ;

za ( auto ja : oznake1 ) cout << ja << endl ;

// Inicijalizacija vektora - oznake2

vektor < int > oznake2 { 56 , Četiri pet , 65 } ;

cout << 'Drugi vektor: \n ' ;

za ( auto j : oznake2 ) cout << j << endl ;

oznake1. umetnuti ( početi ( oznake1 ) , početi ( oznake2 ) , kraj ( oznake2 ) ) ;



// Konačni vektor

cout << 'Prvi-konačni vektor: \n ' ;

za ( auto x : oznake1 )

cout << x << ' ' ;

}

Izlaz:

Prvi vektor (oznake1) sadrži pet elemenata, a drugi vektor (oznake2) sadrži tri elementa. Proslijedili smo parametre begin (marks1), begin(marks2), end(marks2) funkciji 'insert' tako da se svi elementi koji su prisutni u drugom vektoru ponavljaju i umetnu u prvi vektor na početku. Dakle, prvi vektor sadrži osam elemenata.

Pristupite elementima iz vektora

1. Korištenje operatora [].

U nekim scenarijima možda ćete morati vratiti samo određene elemente iz vektora. Vraćanje svih elemenata nije potrebno. Dakle, da bi se vratili samo određeni elementi temeljeni na indeksu, koriste se operator indeksa i funkcije at().

Sintaksa:

vektor [ položaj_indeksa ]

U C++-u, indeksiranje počinje od 0 za bilo koju strukturu podataka. Ako element ne postoji, vraća se prazan (nema pogreške ili se prikazuje upozorenje).

Razmotrite vektor 'proizvodi' s pet stavki. Pristupite svim elementima jedan po jedan koristeći položaj indeksa.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - proizvode s 5 nizova

vektor < niz > proizvoda { 'sapun' , 'šampon' , 'ulje' , 'voće' , 'povrće' } ;

//Pristup elementima iz proizvoda

cout << 'Prvi element: ' << proizvoda [ 0 ] << endl ;

cout << 'Drugi element: ' << proizvoda [ 1 ] << endl ;

cout << 'Treći element: ' << proizvoda [ 2 ] << endl ;

cout << 'Četvrti element:' << proizvoda [ 3 ] << endl ;

cout << 'Peti element:' << proizvoda [ 4 ] << endl ;



// Pokušajte pristupiti 9. elementu

cout << 'Deveti element:' << proizvoda [ 8 ] << endl ;

}

Izlaz:

Ne postoji element prisutan na indeksu 8. Dakle, vraća se prazno.

2. Korištenje funkcije At().

At() je funkcija članica koja je slična prethodnom slučaju upotrebe, ali vraća iznimku 'std::out_of_range' kada joj se dostavi indeks izvan raspona.

Sintaksa:

vektor. na ( položaj_indeksa )

Ovoj funkciji moramo prenijeti poziciju indeksa.

Razmotrite vektor 'proizvodi' s pet stavki. Pristupite svim elementima jedan po jedan koristeći poziciju indeksa i pokušajte pristupiti elementu koji je prisutan na 9. poziciji.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - proizvode s 5 nizova

vektor < niz > proizvoda { 'sapun' , 'šampon' , 'ulje' , 'voće' , 'povrće' } ;

//Pristup elementima iz proizvoda

cout << 'Prvi element: ' << proizvoda. na ( 0 ) << endl ;

cout << 'Drugi element: ' << proizvoda. na ( 1 ) << endl ;

cout << 'Treći element: ' << proizvoda. na ( 2 ) << endl ;

cout << 'Četvrti element:' << proizvoda. na ( 3 ) << endl ;

cout << 'Peti element:' << proizvoda. na ( 4 ) << endl ;



//Pristup elementima koji nisu u vektoru

cout << 'Deveti element:' << proizvoda. na ( 8 ) << endl ;

}

Izlaz:

Dolazi do greške prilikom pristupa 9. elementu:

završiti pozvan nakon izbacivanja instance od 'std::out_of_range'

što ( ) : vektor :: _M_provjera_raspona : __n ( koji je 8 ) >= ovaj - > veličina ( ) ( koji je 5 )

Ažurirajte element u vektoru

1. Korištenje operatora [].

Koristeći poziciju indeksa, možemo ažurirati element u vektoru. Operator [] zauzima poziciju indeksa elementa koji se mora ažurirati. Novi element bit će dodijeljen ovom operatoru.

Sintaksa:

Vektor [ položaj_indeksa ] = Element

Razmotrite vektor 'student_marks' s pet vrijednosti. Ažurirajte elemente prisutne na indeksima 1 i 3.

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - student_marks

vektor < int > ocjene učenika { 98 , 78 , 90 , 67 , 89 } ;

cout << 'Postojeće oznake: ' << endl ;

za ( int itr : ocjene učenika )

cout << itr << endl ;

// Ažuriraj element na indeksu-3 sa 100

ocjene učenika [ 3 ] = 100 ;

// Ažuriraj element na indeksu-1 sa 60

ocjene učenika [ 1 ] = 60 ;

cout << 'Završne ocjene: ' << endl ;

za ( int itr : ocjene učenika )

cout << itr << endl ;

}

Izlaz:

Možemo vidjeti da konačni vektor sadrži elemente ažuriranja na indeksima 1 i 3.

2. Korištenje funkcije At().

Slično operatoru indeksa, at() je u osnovi funkcija članica koja ažurira vrijednost na temelju indeksa u iteratoru. Ako indeks koji je naveden unutar ove funkcije ne postoji, izbacuje se iznimka 'std::out_of_range'.

vektor. na ( položaj_indeksa ) = Element

Razmotrite vektor 'proizvodi' s pet stavki. Ažurirajte sve elemente prisutne u vektoru s drugim elementima.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - proizvode s 5 nizova

vektor < niz > proizvoda { 'sapun' , 'šampon' , 'ulje' , 'voće' , 'povrće' } ;

cout << 'Postojeći proizvodi: ' << endl ;

za ( niz itr : proizvoda )

cout << itr << endl ;

//Ažuriranje svih nizova

proizvoda. na ( 0 ) = 'Torta' ;

proizvoda. na ( 1 ) = 'Čokolada' ;

proizvoda. na ( 2 ) = 'Voće' ;

proizvoda. na ( 3 ) = 'luk' ;

proizvoda. na ( 4 ) = 'Gazirana pića' ;



cout << ' \n Finalni proizvodi: ' << endl ;

za ( niz itr : proizvoda )

cout << itr << endl ;

}

Izlaz:

Uklonite određeni element iz vektora

U C++, std::vector::erase() funkcija se koristi za uklanjanje određenog elementa/raspona elemenata iz vektora. Elementi se uklanjaju na temelju pozicija iteratora.

Sintaksa:

vektor. izbrisati ( pozicija iteratora )

Pogledajmo sintaksu za uklanjanje određenog elementa iz vektora. Možemo koristiti funkcije begin() ili end() da dobijemo položaj elementa koji je prisutan u vektoru koji treba ukloniti.

Razmotrite vektor 'proizvodi' s pet stavki.

  1. Uklonite treći element navođenjem iteratora begin(). Begin() pokazuje na prvi element u vektoru. Ako ovoj funkciji dodamo dva, ona pokazuje na treći element.
  2. Uklonite posljednji element navođenjem end() iteratora. End() pokazuje na zadnji element u vektoru.
#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - proizvode s 5 nizova

vektor < niz > proizvoda { 'sapun' , 'šampon' , 'ulje' , 'voće' , 'povrće' } ;

cout << 'Postojeći proizvodi: ' << endl ;

za ( niz itr : proizvoda )

cout << itr << endl ;



// Ukloni 3. element

proizvoda. izbrisati ( proizvoda. početi ( ) + 2 ) ;

cout << ' \n Nakon uklanjanja 3. elementa: \n ' ;

za ( niz itr : proizvoda )

cout << itr << endl ;

// Ukloni posljednji element

proizvoda. izbrisati ( proizvoda. kraj ( ) ) ;

cout << ' \n Nakon uklanjanja zadnjeg elementa: \n ' ;

za ( niz itr : proizvoda )

cout << itr << endl ;

}

Izlaz:

Sada postoje samo tri elementa ('sapun', 'šampon', 'voće') koja postoje u vektoru 'proizvodi'.

Ukloni sve elemente iz vektora

Scenarij 1: Uklonite niz elemenata iz vektora

Upotrijebimo funkciju std::vector::erase() za uklanjanje više elemenata u rasponu.

Sintaksa:

vektor. izbrisati ( iterator prvi, iterator zadnji )

Dva iteratora (begin() pokazuje na prvi element i end() pokazuje na posljednje funkcije elementa) koriste se za određivanje raspona.

Razmotrite vektor 'proizvodi' s pet stavki i uklonite sve elemente s druge pozicije. Da bi se to postiglo, prvi iterator je begin (products)+1 koji pokazuje na drugi element, a drugi iterator je end (products).

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - proizvode s 5 nizova

vektor < niz > proizvoda { 'sapun' , 'šampon' , 'ulje' , 'voće' , 'povrće' } ;

cout << 'Postojeći proizvodi: ' << endl ;

za ( niz itr : proizvoda )

cout << itr << endl ;



// Uklonite sve elemente s druge pozicije

proizvoda. izbrisati ( početi ( proizvoda ) + 1 ,kraj ( proizvoda ) ) ;

cout << ' \n Konačni proizvodi: \n ' ;

za ( niz itr : proizvoda )

cout << itr << endl ;

}

Izlaz:

Sada postoji samo jedan element ('sapun') koji je prisutan u vektoru 'proizvodi'.

Scenarij 2: Uklonite sve elemente iz vektora

Iskoristimo std::vector::clear() funkcija za uklanjanje svih elemenata iz vektora.

Sintaksa:

vektor. čisto ( )

Ovoj se funkciji ne prosljeđuju parametri.

Razmotrite isti vektor koji je korišten u prvom scenariju i uklonite sve elemente pomoću funkcije clear().

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - proizvode s 5 nizova

vektor < niz > proizvoda { 'sapun' , 'šampon' , 'ulje' , 'voće' , 'povrće' } ;

cout << 'Postojeći proizvodi: ' << endl ;

za ( niz itr : proizvoda )

cout << itr << endl ;



// Uklonite sve elemente iz proizvoda

proizvoda. čisto ( ) ;

cout << ' \n Konačni proizvodi: \n ' ;

za ( niz itr : proizvoda )

cout << itr << endl ;

}

Izlaz:

Vidimo da nema elemenata u vektoru 'proizvodi'.

Unija vektora

Moguće je izvesti operaciju UNION na vektorima pomoću funkcije std::set_union(). Union vraća jedinstvene elemente iz vektora ignorirajući duplikate elemenata. Moramo proslijediti oba iteratora ovoj funkciji. Uz to, mora se proslijediti izlazni iterator koji pohranjuje rezultat koji vraćaju oba iteratora.

Sintaksa:

set_unija ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator res ) ;

Ovdje:

  1. “First1” pokazuje na prvi element prvog iteratora (vektora).
  2. “Last1” pokazuje na posljednji element prvog iteratora (vektora).
  3. “First2” pokazuje na prvi element drugog iteratora (vektora).
  4. “Last2” pokazuje na posljednji element drugog iteratora (vektora).

Napravite dva vektora – “subjects1” i “subjects2” – tipa integer.

  1. Razvrstajte dva vektora pomoću funkcije sort() prosljeđivanjem iteratora.
  2. Kreirajte izlazni vektor (iterator).
  3. Pronađite uniju ova dva vektora pomoću funkcije std::set_union(). Koristite begin() kao prvi iterator i end() kao posljednji iterator.
  4. Ponovite izlazni vektor za prikaz elemenata koje funkcija vraća.
#include

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - oznake1

vektor < int > oznake1 = { 100 , 90 , 80 , 70 , 60 } ;



// Kreiraj vektor - oznake2

vektor < int > oznake2 = { 80 , 90 , 60 , 70 , 100 } ;

// Sortiraj oba vektora

vrsta ( oznake1. početi ( ) , ocjene1. kraj ( ) ) ;

vrsta ( oznake2. početi ( ) , ocjene2. kraj ( ) ) ;

vektor < int > izlazni vektor ( oznake1. veličina ( ) + oznake2. veličina ( ) ) ;

vektor < int > :: iterator ja, s ;

ja = set_unija ( oznake1. početi ( ) , ocjene1. kraj ( ) ,

oznake2. početi ( ) , ocjene2. kraj ( ) ,

izlazni vektor. početi ( ) ) ;

cout << ' \n oznake 1 U oznake 2: \n ' ;

za ( s = izlazni vektor. početi ( ) ; s ! = ja ; ++ s )

cout << * s << ' ' << ' \n ' ;

}

Izlaz:

Postoji samo pet jedinstvenih elemenata u oba vektora (subjekt1 i subjekt2).

Sjecište vektora

Pronalaženje sjecišta dvaju vektora moguće je pomoću funkcije std::set_intersection(). Intersection vraća elemente koji su prisutni u oba vektora.

Sintaksa:

skup_raskrižje ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator res ) ;

Parametri koji se prosljeđuju funkciji set_union() također se mogu proslijediti ovoj funkciji set_intersection().

Napravite dva vektora – “subjects1” i “subjects2” – tipa integer.

  1. Razvrstajte dva vektora pomoću funkcije sort() prosljeđivanjem iteratora.
  2. Kreirajte izlazni vektor (iterator).
  3. Pronađite sjecište ova dva vektora pomoću funkcije std::set_intersection(). Koristite begin() kao prvi iterator i end() kao posljednji iterator.
  4. Ponovite izlazni vektor za prikaz elemenata koje funkcija vraća.
#include

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - oznake1

vektor < int > oznake1 = { 100 , 10 , 80 , 40 , 60 } ;



// Kreiraj vektor - oznake2

vektor < int > oznake2 = { pedeset , 90 , 60 , 10 , 100 } ;

// Sortiraj oba vektora

vrsta ( oznake1. početi ( ) , ocjene1. kraj ( ) ) ;

vrsta ( oznake2. početi ( ) , ocjene2. kraj ( ) ) ;

vektor < int > izlazni vektor ( oznake1. veličina ( ) + oznake2. veličina ( ) ) ;

vektor < int > :: iterator ja, s ;

ja = skup_raskrižje ( oznake1. početi ( ) , ocjene1. kraj ( ) ,

oznake2. početi ( ) , ocjene2. kraj ( ) ,

izlazni vektor. početi ( ) ) ;

cout << ' \n ocjene1 ∩ ocjene2: \n ' ;

za ( s = izlazni vektor. početi ( ) ; s ! = ja ; ++ s )

cout << * s << ' ' << ' \n ' ;

}

Izlaz:

Postoje samo tri elementa prisutna u oba vektora (subjekt1 i subjekt2).

Provjerite je li vektor prazan ili ne

Prije rada na vektorima važno je provjeriti je li vektor prazan ili ne. Također je dobra praksa u softverskim projektima provjeriti je li vektor prazan ili ne prije izvođenja operacija poput CRUD operacija itd.

1. Korištenje Std::vector::empty()

Ova funkcija vraća 1 ako je vektor prazan (ne sadrži nijedan element). Inače se vraća 0. Ovoj se funkciji ne prosljeđuje nijedan parametar.

2. Korištenje Std::vector::size()

Funkcija std::vector::size() vraća cijeli broj koji predstavlja ukupan broj elemenata prisutnih u vektoru.

Napravite dva vektora - 'koledž1' i 'fakultet2'. 'Fakultet1' sadrži pet elemenata, a 'fakultet2' je prazan. Primijenite obje funkcije na oba vektora i provjerite izlaz.

#include

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - koledž1

vektor < niz > koledž1 = { 'koledž-A' , 'koledž-B' , 'koledž-C' , 'koledž-D' , 'koledž-E' } ;

// Kreiraj vektor - koledž2

vektor < niz > koledž2 ;

// prazno()

cout << koledž1. prazan ( ) << endl ;

cout << koledž2. prazan ( ) << endl ;

// veličina()

cout << koledž1. veličina ( ) << endl ;

cout << koledž2. veličina ( ) << endl ;

}

Izlaz:

Funkcija empty() vraća 0 za 'fakultet1' i 1 za 'fakultet2'. Funkcija size() vraća pet za 'fakultet1' i 0 za 'fakultet2'.

Pređite vektor koristeći Const_Iterator

Kada radite na C++ spremnicima kao što su skupovi, vektori itd., moguće je iterirati po svim elementima koji su prisutni u spremniku bez njihove izmjene. The const_iterator je jedan od iteratora koji postižu ovaj scenarij. cbegin() (pokazuje na prvi element u vektoru) i cend() (pokazuje na zadnji element u vektoru) dvije su funkcije koje pruža svaki spremnik koji se koristi za vraćanje konstantnog iteratora na početak i kraj spremnik. Dok ponavljamo vektor, možemo koristiti ove dvije funkcije.

  1. Kreirajmo vektor pod nazivom 'odjeli' s pet nizova.
  2. Deklarirajte const_iterator – ctr tipa .
  3. Iterirajte preko odjela koristeći prethodni iterator koristeći petlju 'for' i prikažite ga.
#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - odjeli

vektor < niz > odjelima = { 'Prodajni' , 'Servis' ,

'HR' , 'TO' , 'Drugi' } ;



vektor < niz > :: const_iterator ctr ;

// Iteracija po odjelima koristeći const_iterator - ctr.

za ( ctr = odjelima. cpočeti ( ) ; ctr ! = odjelima. nekoliko ( ) ; ctr ++ ) {

cout << * ctr << endl ;

}

}

Izlaz:

Pređite vektor koristeći Reverse_Iterator

The obrnuti_iterator je također iterator koji je sličan const_iteratoru, ali vraća elemente obrnutim redom. rbegin() (pokazuje na zadnji element u vektoru) i rend() (pokazuje na prvi element u vektoru) dvije su funkcije koje pruža svaki spremnik koji se koristi za vraćanje konstantnog iteratora na kraj i početak spremnik.

  1. Kreirajmo vektor pod nazivom 'odjeli' s pet nizova.
  2. Deklarirajte reverse_iterator – rtr tipa .
  3. Iterirajte preko odjela koristeći prethodni iterator koristeći petlju 'for' i prikažite ga.
#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - odjeli

vektor < niz > odjelima = { 'Prodajni' , 'Servis' ,

'HR' , 'TO' , 'Drugi' } ;



vektor < niz > :: obrnuti_iterator rtr ;

// Iteracija po odjelima koristeći reverse_iterator - rtr.

za ( rtr = odjelima. rbegin ( ) ; rtr ! = odjelima. pravi ( ) ; rtr ++ ) {

cout << * rtr << endl ;

}

}

Izlaz:

Gurnite elemente u vektor

Guranje ili dodavanje elemenata u vektor je jednosmjerno umetanje koje se može izvesti pomoću vektor::push_back() funkcija.

Sintaksa:

vektor. odgurnuti ( element )

Potreban je element koji se gurne u vektor kao parametar.

Kreirajmo prazan vektor pod nazivom 'odjeli' s pet nizova i gurnimo dva niza jedan za drugim pomoću funkcije push_back().

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Inicijaliziraj vektor - odjeli

vektor < niz > odjelima ;

cout << 'Stvarni odjeli:' << endl ;

za ( auto itr = odjelima. početi ( ) ; itr ! = odjelima. kraj ( ) ; ++ itr )

cout << * itr << endl ;

// Push 'Sales'

odjelima. odgurnuti ( 'Prodajni' ) ;

// Gurni 'IT'

odjelima. odgurnuti ( 'TO' ) ;

cout << ' \n Završni odjeli:' << endl ;

za ( auto itr = odjelima. početi ( ) ; itr ! = odjelima. kraj ( ) ; ++ itr )

cout << * itr << endl ;

}

Izlaz:

Prvo guramo 'Prodaju'. Nakon toga, 'IT' se gura u vektor. Sada, vektor 'odjela' sadrži dva elementa.

Izvucite elemente iz vektora

Ako želite izbrisati posljednju stavku koja je prisutna u vektoru, koristeći vektor::pop_back() funkcija je najbolji pristup. Briše zadnji element koji je prisutan u vektoru.

Sintaksa:

vektor. pop_back ( )

Za ovu funkciju nisu potrebni parametri. Pokazuje nedefinirano ponašanje ako pokušamo izbrisati zadnji element iz praznog vektora.

Kreirajmo prazan vektor pod nazivom 'odjeli' s pet nizova i izbrišite posljednji element pomoću prethodne funkcije. Prikažite vektor u oba slučaja.

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Inicijaliziraj vektor - odjeli

vektor < niz > odjelima = { 'Prodajni' , 'TO' , 'Servis' , 'Marketing' , 'HR' } ;

cout << 'Stvarni odjeli:' << endl ;

za ( auto itr = odjelima. početi ( ) ; itr ! = odjelima. kraj ( ) ; ++ itr )

cout << * itr << endl ;



// Brisanje zadnjeg elementa

odjelima. pop_back ( ) ;

cout << ' \n Završni odjeli:' << endl ;

za ( auto itr = odjelima. početi ( ) ; itr ! = odjelima. kraj ( ) ; ++ itr )

cout << * itr << endl ;

}

Izlaz:

“HR” je posljednji element koji je prisutan u vektoru “odjeli”. Dakle, uklanja se iz vektora i konačni vektor sadrži “Prodaju”, “IT”, “Uslugu” i “Marketing”.

Zamijenite vektore

The vektor::swap() funkcija u C++ STL koristi se za zamjenu svih elemenata koji su prisutni u dva vektora.

Sintaksa:

prvi_vektor. zamijeniti ( drugi_vektor )

Ne uzima u obzir veličinu vektora, ali bi vektori trebali biti istog tipa (pogreška se javlja ako su tipovi vektora različiti).

Kreirajmo dva vektora - 'voće' i 'povrće' - tipa niza različitih veličina. Zamijenite svaki od njih i prikažite vektore u oba slučaja.

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Inicijaliziraj vektor - voće

vektor < niz > voće = { 'Jabuka' , 'Mango' } ;

cout << 'Pravo voće:' << endl ;

za ( auto itr = voće. početi ( ) ; itr ! = voće. kraj ( ) ; ++ itr )

cout << * itr << endl ;



// Inicijaliziraj vektor - povrće

vektor < niz > povrće = { 'Krumpir' , 'Rajčica' , 'brinjal' } ;

cout << ' \n Pravo povrće:' << endl ;

za ( auto itr = povrće. početi ( ) ; itr ! = povrće. kraj ( ) ; ++ itr )

cout << * itr << endl ;



// Zamijenite elemente u oba vektora

voće. zamijeniti ( povrće ) ;

cout << ' \n Voće nakon zamjene:' << endl ;

za ( auto itr = voće. početi ( ) ; itr ! = voće. kraj ( ) ; ++ itr )

cout << * itr << endl ;

cout << ' \n Povrće nakon zamjene:' << endl ;

za ( auto itr = povrće. početi ( ) ; itr ! = povrće. kraj ( ) ; ++ itr )

cout << * itr << endl ;

}

Izlaz:

Prethodno je vektor 'voće' sadržavao dva elementa, a vektor 'povrće' tri elementa. Nakon zamjene, vektor 'voće' sadrži tri elementa, a vektor 'povrće' dva elementa.

Dohvatite prvi element iz vektora

U nekim slučajevima, zahtjev je vratiti samo prvi element iz vektora. Funkcija vector::front() u C++ STL-u dohvaća samo prvi element iz vektora.

Sintaksa:

vektor. ispred ( )

Ova funkcija neće uzeti nijedan parametar. Ako je vektor prazan, javlja se pogreška.

Kreirajmo dva vektora - 'voće' i 'povrće' - vrste niza i pokušajmo dohvatiti prvi element odvojeno od dva vektora.

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - voće s 2 elementa

vektor < niz > voće = { 'Jabuka' , 'Mango' } ;

// Vrati prvi element

cout << voće. ispred ( ) << endl ;



// Inicijaliziraj vektor - povrće

vektor < niz > povrće ;

// Pokušajte vratiti prvi element

cout << povrće. ispred ( ) ;

}

Izlaz:

'Jabuka' je prvi element koji je prisutan u vektoru 'voće'. Dakle, vraćeno je. Ali javlja se pogreška kada pokušamo dohvatiti prvi element iz vektora 'povrće' jer je prazan.

Dohvatite zadnji element iz vektora

Funkcija vector::end() u C++ STL-u dohvaća samo posljednji element iz vektora.

Sintaksa:

vektor. leđa ( )

Ova funkcija neće uzeti nijedan parametar. Ako je vektor prazan, javlja se pogreška.

Kreirajmo dva vektora - 'voće' i 'povrće' - vrste niza i pokušajmo dohvatiti posljednji element odvojeno od dva vektora.

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - voće s 2 elementa

vektor < niz > voće = { 'Jabuka' , 'Mango' } ;

// Dohvaćanje posljednjeg elementa

cout << voće. leđa ( ) << endl ;



// Inicijaliziraj vektor - povrće

vektor < niz > povrće ;

// Pokušajte dohvatiti posljednji element

cout << povrće. leđa ( ) ;

}

Izlaz:

'Mango' je posljednji element koji je prisutan u vektoru 'voće'. Dakle, vraćeno je. Ali javlja se pogreška kada pokušamo dohvatiti posljednji element iz vektora 'povrće' jer je prazan.

Dodijelite nove vrijednosti vektoru

U nekim scenarijima, ako želite ažurirati sve vrijednosti novom vrijednošću ili stvoriti vektor s istim vrijednostima, korištenje funkcije vector::assign() najbolji je pristup. Pomoću ove funkcije možemo:

  1. Napravite vektor sa svim sličnim elementima
  2. Modificirajte postojeći vektor s istim elementom

Sintaksa:

vektor. dodijeliti ( veličina, vrijednost )

Za ovu funkciju potrebna su dva parametra.

Ovdje:

  1. Veličina određuje broj elemenata koji će se dodijeliti.
  2. Vrijednost specificira element koji treba dodijeliti.

Kreirajmo vektor pod nazivom 'marks1' s pet vrijednosti i ažurirajmo ovaj vektor s četiri elementa tako da svi elementi u ažuriranom vektoru budu jednaki 20.

#include

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - oznake1

vektor < int > oznake1 = { 100 , 90 , 80 , 70 , 60 } ;

cout << 'Stvarni vektor:' << endl ;

za ( int ja = 0 ; ja < oznake1. veličina ( ) ; ja ++ )

cout << oznake1 [ ja ] << endl ;



oznake1. dodijeliti ( 4 , dvadeset ) ;



cout << ' \n Ažurirani vektor:' << endl ;

za ( int ja = 0 ; ja < oznake1. veličina ( ) ; ja ++ )

cout << oznake1 [ ja ] << endl ;

}

Izlaz:

Ranije je vektor sadržavao pet različitih elemenata. Sada sadrži samo četiri elementa i svi su jednaki 20.

Proširite vektor pomoću Emplace()

Već znamo da se novi elementi dinamički umeću na bilo koje mjesto u vektoru. Moguće je pomoću funkcije vector::emplace(). Pogledajmo brzo sintaksu i parametre koje prihvaća ova funkcija.

Sintaksa:

vektor. mjesto ( const_iterator pozicija, element )

Dva obvezna parametra prosljeđuju se ovoj funkciji.

Ovdje:

  1. Prvi parametar zauzima poziciju tako da možemo umetnuti element na bilo kojoj poziciji. Položaj možemo dobiti pomoću funkcije iteratora begin() ili end().
  2. Drugi parametar je element koji treba umetnuti u vektor.

Razmotrimo vektor 'kemikalija' s dva elementa.

  1. Umetnite 'Mangan' na prvo mjesto - početak (kemikalije)
  2. Umetnite 'Bakar' na zadnjoj poziciji - kraj (kemikalije)
  3. Umetnite 'Sulphur' na treće mjesto - početak (kemikalije)+2
#include

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - kemikalije

vektor < niz > kemikalije = { 'Kisik' , 'CO' } ;

cout << 'Stvarne kemikalije:' << endl ;

za ( int ja = 0 ; ja < kemikalije. veličina ( ) ; ja ++ )

cout << kemikalije [ ja ] << endl ;



// Umetanje elementa na prvu poziciju

kemikalije. mjesto ( početi ( kemikalije ) , 'Mangan' ) ;



// Umetanje elementa na posljednju poziciju

kemikalije. mjesto ( kraj ( kemikalije ) , 'Bakar' ) ;



// Umetanje elementa na treće mjesto

kemikalije. mjesto ( početi ( kemikalije ) + 2 , 'Sumpor' ) ;



cout << ' \n Završne kemikalije:' << endl ;

za ( int ja = 0 ; ja < kemikalije. veličina ( ) ; ja ++ )

cout << kemikalije [ ja ] << endl ;

}

Izlaz:

Sada, konačni vektor sadrži pet elemenata (prikazano na sljedećoj snimci zaslona).

Proširite vektor pomoću Emplace_Back()

Element se može dodati (dodavanje na kraj vektora) što se može učiniti korištenjem vektor::emplace_back() funkcija.

Sintaksa:

vektor. emplace_back ( element )

Obavezno je proslijediti element koji se dodaje vektoru kao parametar.

Dodajmo dva elementa jedan za drugim pomoću funkcije emplace_back().

#include

#include

#uključi

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - kemikalije

vektor < niz > kemikalije = { 'Kisik' , 'CO' } ;

cout << 'Stvarne kemikalije:' << endl ;

za ( int ja = 0 ; ja < kemikalije. veličina ( ) ; ja ++ )

cout << kemikalije [ ja ] << endl ;



// Umetnite Mangan na kraju vektora

kemikalije. emplace_back ( 'Mangan' ) ;



// Umetnite Mangan na kraju vektora

kemikalije. emplace_back ( 'Bakar' ) ;





cout << ' \n Završne kemikalije:' << endl ;

za ( int ja = 0 ; ja < kemikalije. veličina ( ) ; ja ++ )

cout << kemikalije [ ja ] << endl ;

}

Izlaz:

Sada, konačni vektor sadrži četiri elementa nakon dodavanja 'mangana' i 'bakra'.

Maksimalni element vektora

  1. Napravite vektor s nekim elementima.
  2. Da biste pronašli najveći element koji je prisutan u vektoru, koristite funkciju *max_element() koja prihvaća dva iteratora kao argumente. Ova dva parametra djeluju kao raspon, a maksimalni element se vraća unutar navedenog raspona. Početna pozicija je begin(), a posljednja pozicija je end().
* max_element ( prvi_indeks,zadnji_indeks )

Razmotrimo vektor pod nazivom 'item_costs' koji sadrži pet vrijednosti tipa cijelog broja i vraća maksimalni element.

#uključi

#include

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - item_costs

vektor < int > stavke_troškovi = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Cijena artikala: \n ' ;

za ( int ja = 0 ; ja < stavke_troškovi. veličina ( ) ; ja ++ )

cout << stavke_troškovi [ ja ] << endl ;



// Vrati maksimalni element iz gornjeg vektora - item_costs

cout << ' \n Maksimalni trošak: ' << * max_element ( početi ( stavke_troškovi ) ,kraj ( stavke_troškovi ) ) ;

}

Izlaz:

Ovdje je 8900 najveći element među svim elementima koji su prisutni u vektoru ”item_costs”.

Minimalni element vektora

  1. Napravite vektor s nekim elementima.
  2. Da biste pronašli minimalni element koji je prisutan u vektoru, koristite funkciju *min_element() koja prihvaća dva iteratora kao argumente. Ova dva parametra djeluju kao raspon, a minimalni element (manji od svih ostalih elemenata) vraća se unutar navedenog raspona. Početna pozicija je begin(), a posljednja pozicija je end().
* min_element ( prvi_indeks,zadnji_indeks )

Upotrijebite isti vektor koji je stvoren za pronalaženje maksimalnog elementa i pronalaženje minimalnog elementa pomoću funkcije *min_element().

#uključi

#include

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - item_costs

vektor < int > stavke_troškovi = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Cijena artikala: \n ' ;

za ( int ja = 0 ; ja < stavke_troškovi. veličina ( ) ; ja ++ )

cout << stavke_troškovi [ ja ] << endl ;



// Vrati minimalni element iz gornjeg vektora - item_costs

cout << ' \n Minimalni trošak: ' << * min_element ( početi ( troškovi_stavka ) ,kraj ( troškovi_stavka ) ) ;

}

Izlaz:

Ovdje je 200 minimalni element među svim elementima koji su prisutni u vektoru “item_costs”.

Zbroj elemenata u vektoru

Da biste vratili zbroj svih elemenata koji su prisutni u vektoru, akumulirati() koristi se funkcija u C++ STL. Prihvaća tri parametra. Prvi parametar uzima prvi indeks koji predstavlja početni element u rasponu (navedite iterator begin()), a drugi parametar uzima zadnji indeks koji predstavlja završni element u rasponu (navedite iterator end()). Na kraju, trebamo prenijeti početnu vrijednost zbroja (u našem slučaju to je 0).

akumulirati ( prvi_indeks, zadnji_indeks, početna_val ) ;

Napravite vektor pod nazivom “item_costs” s pet elemenata tipa cjelobrojnog broja i izračunajte zbroj.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreiraj vektor - item_costs

vektor < int > troškovi_stavka = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Cijena artikala: \n ' ;

za ( int ja = 0 ; ja < troškovi_stavka. veličina ( ) ; ja ++ )

cout << troškovi_stavka [ ja ] << endl ;



// Vrati zbroj svih elemenata u gornjem vektoru - item_costs

cout << ' \n Ukupni trošak: ' << akumulirati ( početi ( troškovi_stavka ) ,kraj ( troškovi_stavka ) , 0 ) ;

}

Izlaz:

Zbroj 8900, 5677, 200, 1000, 2300 je 18077.

Elementno množenje dvaju vektora

  1. Napravite dva vektora tipa numeric i dva vektora moraju biti iste veličine (ukupan broj elemenata prisutnih u prvom vektoru = ukupan broj elemenata prisutnih u drugom vektoru).
  2. Deklarirajte novi vektor i upotrijebite za petlju , izvesti operaciju množenja na dva elementa u svakoj iteraciji i pohraniti vrijednost u kreirani vektor pomoću funkcije push_back().
  3. za ( int itr = 0 ; ja < prvi_vec. veličina ( ) ; itr ++ )

    {

    vektor_rezultata. odgurnuti ( prvi_vec [ itr ] * sekund_stvar [ itr ] ) ;

    }
  4. Prikažite elemente koji su prisutni u rezultantnom vektoru ponavljajući ga.

Napravite vektor pod nazivom “item_costs” s pet elemenata tipa cjelobrojnog broja i izračunajte zbroj.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte dva vektora - products1 i products2 sa po 5 elemenata

vektor < int > proizvodi1 = { 10 , dvadeset , 30 , 40 , pedeset } ;

vektor < int > proizvodi2 = { pedeset , 40 , 30 , 70 , 60 } ;



vektor < int > rezultati_proizvodi ;



// Izvođenje množenja po elementima

za ( int ja = 0 ; ja < proizvodi1. veličina ( ) ; ja ++ ) {

rezultati_proizvodi. odgurnuti ( proizvodi1 [ ja ] * proizvodi2 [ ja ] ) ;

}



// Prikaz rezultantnog vektora

cout << 'Vektorsko množenje: \n ' ;

za ( int res : rezultati_proizvodi )

cout << res << endl ;

}

Izlaz:

Ponavljanje - 1 : 10 * pedeset => 500

Ponavljanje - 2 : dvadeset * 40 => 800

Ponavljanje - 3 : 30 * 30 => 900

Ponavljanje - 4 : 40 * 70 => 2800

Ponavljanje - 5 : pedeset * 60 => 3000

Točkasti umnožak dvaju vektora

U slučaju C++ vektora, točkasti umnožak je definiran kao 'zbroj umnožaka odgovarajućih unosa dva niza vektora'.

Sintaksa:

unutarnji proizvod ( Vektor1 prvi, Vektor1 zadnji, Vektor2 prvi, Initial_Val )

Koristite funkciju inner_product() za vraćanje točkastog umnoška. Ova funkcija uzima četiri potrebna parametra.

Ovdje:

  1. Prvi parametar odnosi se na iterator koji pokazuje na početak prvog vektora (odredite pomoću funkcije begin().
  2. Drugi parametar odnosi se na iterator koji pokazuje na završetak prvog vektora (odredite pomoću funkcije end()).
  3. Treći parametar odnosi se na iterator koji pokazuje na početak drugog vektora (odredite pomoću funkcije begin().
  4. Početna vrijednost mora se proslijediti kao posljednji parametar koji je cijeli broj za akumulaciju točkastog produkta.

Upotrijebite isti program koji je stvoren za množenje dvaju vektora i upotrijebite funkciju innsr_product() za pronalaženje točkastog produkta dvaju vektora.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte dva vektora - products1 i products2 sa po 5 elemenata

vektor < int > proizvodi1 = { 10 , dvadeset , 30 , 40 , pedeset } ;

vektor < int > proizvodi2 = { pedeset , 40 , 30 , 70 , 60 } ;



// Prikaz rezultantnog vektora

cout << 'Točkasti proizvod proizvoda1 i proizvoda2: ' ;

cout << unutarnji proizvod ( početi ( proizvodi1 ) ,kraj ( proizvodi1 ) ,početi ( proizvodi2 ) , 0 ) ;

}

Izlaz:

( 10 * pedeset ) + ( dvadeset * 40 ) + ( 30 * 30 ) + ( 40 * 70 ) + ( pedeset * 60 )

=> 500 + 800 + 900 + 2800 + 3000

=> 8000

Pretvorite skup u vektor

Postoji mnogo načina za pretvaranje skupa u vektor prosljeđivanjem svih elemenata koji su podignuti u skupu u vektor. Najbolji i najjednostavniji način je korištenje funkcije std::copy().

Sintaksa

std :: kopirati ( izvorniIterator prvi, izvorniIterator zadnji, odredišniIterator prvi )

Koristiti std::copy() funkcija koja umeće elemente iz skupa u vektor. Potrebna su tri parametra.

Ovdje:

  1. Prvi parametar odnosi se na izvorni iterator koji pokazuje na prvi element u iteratoru. Ovdje je set izvorni iterator koji je naveden pomoću funkcije begin().
  2. Slično, drugi parametar pokazuje na posljednji element (funkcija end().
  3. Treći parametar odnosi se na odredišni iterator koji pokazuje na prvi element (određen pomoću funkcije begin()) u iteratoru.

Kreirajmo skup s pet učenika i kopirajmo sve elemente u vektor koristeći prethodnu funkciju.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte skup - učenici s 5 elemenata

postaviti < niz > učenicima = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' } ;

cout << 'Set: \n ' ;

za ( niz i : učenicima )

cout << ja << endl ;



// Kreiraj vektor - veličina student_vcof jednaka veličini skupa

vektor < niz > student_vc ( učenicima. veličina ( ) ) ;



// Umetanje elemenata iz skupa - studenti u vektor - student_vc.

kopirati ( učenicima. početi ( ) , studenti. kraj ( ) , student_vc. početi ( ) ) ;



cout << ' \n Vektor: \n ' ;

za ( niz i : student_vc )

cout << ja << endl ;

}

Izlaz:

Sada se svi elementi koji su prisutni u skupu “Students” kopiraju u vektor “students_vc”.

Uklonite duplikate elemenata

  1. Prvo, moramo sortirati elemente u vektoru tako da svi duplirani elementi budu susjedni jedan uz drugi koristeći std::sort() funkcija.
  2. std :: vrsta ( Vektor prvi, vektor zadnji ) ;
  3. Upotrijebite funkciju std::unique() kako bi se odabrali duplicirani elementi. U isto vrijeme koristite funkciju erase() za uklanjanje duplikata koje vraća funkcija std::unique(). Redoslijed elemenata može se promijeniti u konačnom vektoru.
  4. vektor. izbrisati ( std :: jedinstvena ( Vektor prvi, vektor zadnji ) , Vektor zadnji ) )

Napravite vektor 'učenici' s 10 elemenata i vratite vektor uklanjanjem duplikata.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - učenici s 10 elemenata

vektor < niz > učenicima = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' ,

'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' } ;

cout << 'Učenici: \n ' ;

za ( niz i : učenicima )

cout << ja << ' ' ;



// Poredaj sve elemente u vektoru učenika.

vrsta ( početi ( učenicima ) , kraj ( učenicima ) ) ;



// Koristite funkciju unique() za uklanjanje duplikata pomoću funkcije erase().

učenicima. izbrisati ( jedinstvena ( početi ( učenicima ) , kraj ( učenicima ) ) , kraj ( učenicima ) ) ;



cout << ' \n \n Jedinstveni studenti: \n ' ;

za ( auto itr = cpočeti ( učenicima ) ; itr ! = nekoliko ( učenicima ) ; ++ itr ) {

cout << * itr << ' ' ;

}

}

Izlaz:

Sada su svi elementi jedinstveni u vektoru.

Pretvorite vektor u skup

Skup ne dopušta duplikate elemenata. Ako upisujete kako biste umetnuli vektor u skup s duplikatima, oni će biti zanemareni. Koristimo istu funkciju std::copy() koja je korištena u prethodnom scenariju koja je pretvorila skup u vektor.

U ovom scenariju:

  1. Prvi parametar uzima vektor kao izvorni iterator koji je naveden pomoću funkcije begin().
  2. Drugi parametar uzima vektor kao izvorni iterator koji je naveden pomoću funkcije end().
  3. Proslijedite funkciju std::inserter() koja se koristi za automatsko prepisivanje/kopiranje elemenata na određenoj poziciji u skupu pružanjem skupa i iteratora koji pokazuju na kraj skupa kao parametre.

Kreirajmo vektor s 10 cijelih brojeva i kopirajmo elemente u skup.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte skup - oznake s 10 vrijednosti

vektor < int > oznake = { 12 , 3. 4 , 56 , 78 , 65 , 78 , 90 , 90 , 78 , 3. 4 } ;

cout << 'Vektor: \n ' ;

za ( int ja : oznake )

cout << ja << ' ' ;



// Stvori skup - marks_set veličine jednake veličini vektora

postaviti < int > skup_oznaka ;



// Umetanje elemenata iz skupa - studenti u vektor - student_vc.

kopirati ( početi ( oznake ) ,kraj ( oznake ) , umetač ( oznake_set,kraj ( skup_oznaka ) ) ) ;



cout << ' \n \n set: \n ' ;

za ( int ja : skup_oznaka )

cout << ja << ' ' ;

}

Izlaz:

Postojeći vektor pod nazivom “marks” ima 10 vrijednosti. Nakon kopiranja u skup 'marks_set', sadrži samo šest elemenata jer su ostala četiri elementa duplicirana.

Uklonite prazne nizove

Ne koriste se prazni nizovi koji su prisutni u vektoru. Dobra je praksa ukloniti prazne nizove koji su prisutni u vektoru. Pogledajmo kako ukloniti prazne nizove iz C++ vektora:

  1. Ponovite vektor koristeći petlju 'for'.
  2. U svakoj iteraciji provjerite je li element prazan (“”) ili ne koristite operator “==” s funkcijom članom at().
  3. Pomoću funkcije std::erase() uklonite prazne nizove nakon provjere prethodnog uvjeta.
  4. Ponovite korak 2 i korak 3 do kraja vektora.

Kreirajmo vektor 'tvrtke' s 10 nizova. Među njima je pet praznih i uklanjamo ih primjenom prethodnog pristupa.

#include

#uključi

korištenjem imenski prostor std ;

glavni ( ) {



vektor < niz > tvrtke { 'Tvrtka-A' , '' , 'Tvrtka-B' ,

'' , 'Tvrtka-C' , '' , 'Tvrtka-D' , '' , '' , '' } ;



// Iteracija kroz tvrtke

// i uklonite prazne elemente koristeći erase()

za ( int itr = 1 ; itr < tvrtke. veličina ( ) ; ++ itr ) {

ako ( tvrtke. na ( itr ) == '' ) {

tvrtke. izbrisati ( tvrtke. početi ( ) + itr ) ;

-- itr ;

}
}

// Prikaz vektora


za ( auto i ja : tvrtke ) {

cout << ja << endl ;

}

}

Izlaz:

Sada, vektor 'poduzeća' sadrži neprazne nizove.

Zapišite vektor u tekstualnu datoteku

Raspravimo o tome kako zapisati sve elemente koji su prisutni u vektoru u datoteku koristeći vektorske indekse koristeći fstream .

  1. Gurnite neke elemente u njega pomoću funkcije push_back nakon inicijalizacije vektora.
  2. Koristite funkciju open() iz biblioteke 'fstream' s načinom kao out.
  3. Pređite svaki element koji je prisutan u vektoru pomoću indeksa u petlji 'for' i zapišite svaki element u datu datoteku.
  4. Na kraju zatvorite datoteku.

Implementirajmo prethodni pristup pokretanjem C++ koda.

#uključi

#include

#include

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Kreirajte vektor - v_data

// i gurnite dva elementa u njega.

vektor < niz > v_podaci ;

v_podaci. odgurnuti ( 'Dobrodošli' ) ;

v_podaci. odgurnuti ( 'na LinuxHint' ) ;

tok f ;



// Otvorite datoteku

f. otvoren ( 'napisana_datoteka.txt' ,ios_baza :: van ) ;

// Iteracija svakog elementa vektora i pisanje u datoteku jedan po jedan.

za ( int ja = 0 ; ja < v_podaci. veličina ( ) ; ja ++ )

{

f << v_podaci [ ja ] << endl ;

}

// Zatvori datoteku

f. Zatvoriti ( ) ;

}

Izlaz:

Vektor “v_data” sadrži dva elementa i kreira se datoteka na stazi gdje se izvršava program s elementima koji su prisutni u vektoru.

Stvorite vektor iz tekstualne datoteke

Naučili smo kako elemente koji su prisutni u vektoru napisati u tekstualnu datoteku. Ovdje stvorimo vektor od sadržaja koji je prisutan u tekstualnoj datoteci.

  1. Napravite ' ifstream” varijabla koja se koristi za čitanje informacija iz tekstualne datoteke u kojoj kreiramo vektor iz datoteke.
  2. Napravite prazan vektor za pohranu sadržaja datoteke i koristite praznu varijablu niza kao oznaku za provjeru kraja datoteke.
  3. Čitajte sljedeći redak iz datoteke dok ne dođe do kraja (u osnovi koristeći petlju 'while'). Koristite funkciju push_back() da biste pročitali sljedeći redak i gurnuli ga u vektor.
  4. Zasebno prikažite liniju koja je prisutna u liniji da biste vidjeli elemente koji su prisutni u vektoru na konzoli.

Implementirajmo prethodni pristup pokretanjem C++ koda. Razmotrimo datoteku 'data.txt' sa sljedećim sadržajem. Ovdje je naziv vektora “v_data”.

#include

korištenjem imenski prostor std ;

glavni ( )

{

// Otvaranje tekstualne datoteke - podataka
ifstream datoteku ( 'podaci.txt' ) ;

// Kreiraj vektor - v_data tipa - niz


vektor < niz > v_podaci ;

tange bile ;

// Pročitajte sljedeći red iz data.txt
// dok ne dođe do kraja.


dok ( datoteka >> bio je ) {

// Pročitajte sljedeći redak i gurnite u v_data

v_podaci. odgurnuti ( bio je ) ;

}



// Odvojeno prikaži red prisutan u retku.

kopirati ( v_podaci. početi ( ) , v_podaci. kraj ( ) , ostream_iterator < niz > ( cout , ' \n ' ) ) ;

}

Izlaz:

Vidimo da 'v_data' sadrži pet elemenata koji dolaze iz datoteke.

Zaključak

U ovom dugačkom članku istražili smo sve moguće primjere koji se koriste u aplikacijama u stvarnom vremenu vezanim uz vektore u programskom jeziku C++. Svaki primjer objašnjen je sintaksom, parametrima, a primjer s izlazom. Komentari su dodani u svaki kod kako bi se dobio jasniji uvid u kod.