30 Exemple de vectori C++

30 Exemple De Vectori C



În C++, Vector este o structură de date unidimensională care se crește dinamic în funcție de cerințe. Organizarea datelor (inserarea/modificarea/stergerea) se poate face eficient in aceasta structura de date. Aplicațiile sale includ următoarele:

  1. Reprezentarea vectorilor matematici în aplicații științifice și de inginerie
  2. Cozile, stivele pot fi implementate folosind această structură de date etc.

Majoritatea operațiunilor și funcțiilor CRUD obișnuite legate de această structură de date sunt discutate în detaliu pe scenarii, cu sintaxele și fragmentele de cod.







Subiect de conținut:

  1. Inserați un element într-un vector
  2. Inserați mai multe elemente într-un vector
  3. Accesați elementele dintr-un vector
  4. Actualizați elementul într-un vector
  5. Eliminați un element specific dintr-un vector
  6. Eliminați toate elementele dintr-un vector
  7. Uniunea Vectorilor
  8. Intersecția Vectorilor
  9. Verificați dacă vectorul este gol sau nu
  10. Traversați un vector folosind Const_Iterator
  11. Traversați un vector folosind Reverse_Iterator
  12. Împingeți Elementele în Vector
  13. Scoateți elementele din vector
  14. Schimbați vectorii
  15. Preluați primul element din vector
  16. Preluați ultimul element din vector
  17. Atribuiți noi valori unui vector
  18. Extinde vectorul folosind Emplace()
  19. Extinde vectorul folosind Emplace_Back()
  20. Elementul maxim al unui vector
  21. Elementul minim al unui vector
  22. Suma elementelor dintr-un vector
  23. Înmulțirea în funcție de elemente a doi vectori
  24. Produsul punctual al doi vectori
  25. Convertiți un set într-un vector
  26. Eliminați elementele duplicate
  27. Convertiți un vector într-un set
  28. Scoateți șirurile goale
  29. Scrieți un vector într-un fișier text
  30. Creați un vector dintr-un fișier text

Inserați un element într-un vector

The std::vector::insert() funcția în C++ STL este folosită pentru a insera elementele la poziția specificată.



Sintaxă:

vector. introduce ( poziție, element ) ;

Să folosim această funcție și să trecem prima poziție ca parametru care specifică poziția în care trebuie inserat elementul și să furnizăm elementul ca al doilea parametru.



Funcția begin() poate fi utilizată aici pentru a returna un iterator care indică primul element al vectorului de intrare. Prin adăugarea poziției la această funcție, elementul este inserat în acea poziție.





Să creăm vectorul „student_names” de tip șir și să introducem două șiruri la prima și a doua poziție, unul după altul, folosind funcția insert().

#include

folosind spatiu de nume std ;

principal ( )

{

// Inițializarea vectorului - student_names

vector < şir > nume_elevi ;

cout << „Vector existent: \n ' ;

pentru ( auto i : nume_elevi ) cout << i << endl ;

// Introduceți „Sravan Kumar” la prima poziție

nume_elevi. introduce ( nume_elevi. ÎNCEPE ( ) + 0 , „Shravan Kumar” ) ;

// Introduceți „Sravan Kumar” la a doua poziție

nume_elevi. introduce ( nume_elevi. ÎNCEPE ( ) + 1 , 'Lalitha' ) ;

cout << 'Vector final: \n ' ;

pentru ( auto j : nume_elevi ) cout << j << endl ;

}

Ieșire:

Anterior, vectorul „student_names” era gol. După inserare, vectorul conține două elemente.



Inserați mai multe elemente într-un vector

Folosim aceeași funcție care este std::vector::insert() în acest scenariu. Dar trebuie să transmitem parametrii suplimentari/diferiți aceleiași funcție pentru a insera mai multe elemente într-un vector.

Scenariul 1: inserarea unui singur element de mai multe ori

În acest scenariu, adăugăm același element de mai multe ori.

Sintaxă:

vector. introduce ( poziție, dimensiune, element ) ;

Pentru a face acest lucru, trebuie să transmitem dimensiunea ca al doilea parametru la funcția insert(). Numărul total de parametri care sunt transferați acestei funcție este de trei.

Aici:

  1. Parametrul de poziție specifică poziția elementului de inserat. Dacă dimensiunea este mai mare decât 1, indicele poziției de început va fi poziția.
  2. Parametrul de dimensiune specifică de câte ori trebuie inserat un element.
  3. Parametrul element preia elementul pentru a fi inserat într-un vector.

Luați în considerare vectorul „student_names” cu două șiruri. Introduceți șirurile „Lavanya” de cinci ori în a doua poziție.

#include

folosind spatiu de nume std ;

principal ( )

{

// Inițializarea vectorului - student_names

vector < şir > nume_elevi { „Shravan Kumar” , 'Lalitha' } ;

cout << „Vector existent: \n ' ;

pentru ( auto i : nume_elevi ) cout << i << endl ;

// Introduceți „Lavanya” în a doua poziție de 5 ori

nume_elevi. introduce ( nume_elevi. ÎNCEPE ( ) + 1 , 5 , 'Lavanya' ) ;

cout << ' \n Vector final: \n ' ;

pentru ( auto j : nume_elevi ) cout << j << endl ;

}

Ieșire:

În vectorul existent, „Sravan Kumar” este pe prima poziție, iar „Lalitha” este pe a doua poziție. După ce a introdus „Lavanya” de cinci ori (de la a doua poziție la a șasea poziție), „Lalitha” a trecut pe a șaptea poziție (ultima).

Scenariul 2: inserarea mai multor elemente

În acest scenariu, adăugăm diferitele elemente la un moment dat dintr-un alt vector. De asemenea, folosim aceeași funcție aici, dar sintaxa și parametrii se vor schimba.

Sintaxă:

vector. introduce ( poziție, primul_iterator, al doilea_iterator ) ;

Pentru a face acest lucru, trebuie să transmitem dimensiunea ca al doilea parametru la funcția insert(). Numărul total de parametri care sunt transferați acestei funcție este de trei.

Aici:

  1. Parametrul de poziție specifică poziția elementului de inserat.
  2. „first_iterator” specifică poziția de pornire din care urmează să fie inserate elementele (practic, folosind funcția begin(), este returnat un iterator care indică primul element care este prezent în container).
  3. „second_iterator” specifică poziția finală până la care urmează să fie inserate elementele (practic, folosind funcția end(), este returnat un iterator care punctează lângă ultimul punct care este prezent în container).

Creați doi vectori, „marks1” și „marks2”, de tip întreg. Introduceți toate elementele care sunt prezente în vectorul „marks2” în prima poziție a vectorului „marks1”.

#include

folosind spatiu de nume std ;

principal ( )

{

// Inițializarea vectorului - marks1

vector < int > note 1 { 100 , 89 , 90 , 78 , 98 } ;

cout << „Primul vector: \n ' ;

pentru ( auto i : note 1 ) cout << i << endl ;

// Initializarea vectorului - marks2

vector < int > note 2 { 56 , Patru cinci , 65 } ;

cout << „Al doilea vector: \n ' ;

pentru ( auto j : note 2 ) cout << j << endl ;

note 1. introduce ( ÎNCEPE ( note 1 ) , ÎNCEPE ( note 2 ) , Sfârşit ( note 2 ) ) ;



// Vector final

cout << 'Primul vector final: \n ' ;

pentru ( auto X : note 1 )

cout << X << ' ' ;

}

Ieșire:

Primul vector (marks1) conține cinci elemente, iar al doilea vector (marks2) conține trei elemente. Am trecut parametrii begin (marks1), begin(marks2), end(marks2) la funcția „inserare”, astfel încât toate elementele care sunt prezente în al doilea vector să fie iterate și inserate în primul vector la început. Deci, primul vector conține opt elemente.

Accesați elementele dintr-un vector

1. Folosind operatorul []

În unele scenarii, este posibil să aveți o cerință de a returna doar elementele specifice din vector. Nu este necesară returnarea tuturor elementelor. Deci, pentru a returna doar elementele specifice bazate pe index, se utilizează operatorul index și funcțiile at().

Sintaxă:

vector [ poziție_index ]

În C++, indexarea începe de la 0 pentru orice structură de date. Dacă elementul nu există, acesta revine gol (Nu se afișează nicio eroare sau un avertisment).

Luați în considerare vectorul „produse” cu cinci articole. Accesați toate elementele unul câte unul folosind poziția index.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - produse cu 5 șiruri

vector < şir > produse { 'săpun' , 'şampon' , 'ulei' , 'fructe' , 'legume' } ;

//Accesarea elementelor din produse

cout << 'Primul element:' << produse [ 0 ] << endl ;

cout << 'Al doilea element:' << produse [ 1 ] << endl ;

cout << 'Al treilea element:' << produse [ 2 ] << endl ;

cout << 'Al patrulea element:' << produse [ 3 ] << endl ;

cout << 'Al cincilea element:' << produse [ 4 ] << endl ;



// Încercați să accesați al 9-lea element

cout << 'Al nouălea element:' << produse [ 8 ] << endl ;

}

Ieșire:

Nu există niciun element prezent la indexul 8. Deci, este returnat gol.

2. Folosind funcția At().

At() este o funcție membru care este similară cu cazul de utilizare anterior, dar returnează excepția „std::out_of_range” atunci când îi este furnizat indexul în afara intervalului.

Sintaxă:

vector. la ( poziție_index )

Trebuie să trecem poziția indexului acestei funcții.

Luați în considerare vectorul „produse” cu cinci articole. Accesați toate elementele unul câte unul folosind poziția de index și încercați să accesați elementul care este prezent în poziția a 9-a.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - produse cu 5 șiruri

vector < şir > produse { 'săpun' , 'şampon' , 'ulei' , 'fructe' , 'legume' } ;

//Accesarea elementelor din produse

cout << 'Primul element:' << produse. la ( 0 ) << endl ;

cout << 'Al doilea element:' << produse. la ( 1 ) << endl ;

cout << 'Al treilea element:' << produse. la ( 2 ) << endl ;

cout << 'Al patrulea element:' << produse. la ( 3 ) << endl ;

cout << 'Al cincilea element:' << produse. la ( 4 ) << endl ;



//Accesarea elementelor care nu sunt în vector

cout << 'Al nouălea element:' << produse. la ( 8 ) << endl ;

}

Ieșire:

Apare o eroare la accesarea celui de-al 9-lea element:

termina apelat după aruncarea unei instanțe de „std::out_of_range”

ce ( ) : vector :: _M_range_check : __n ( care este 8 ) >= acest - > mărimea ( ) ( care este 5 )

Actualizați un element într-un vector

1. Folosind operatorul []

Folosind poziția indexului, putem actualiza elementul din vector. Operatorul [] ia poziția de index a elementului care trebuie actualizat. Noul element va fi atribuit acestui operator.

Sintaxă:

Vector [ poziție_index ] = Element

Luați în considerare vectorul „student_marks” cu cinci valori. Actualizați elementele prezente la indicii 1 și 3.

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - student_marks

vector < int > student_marks { 98 , 78 , 90 , 67 , 89 } ;

cout << „Marcă existentă:” << endl ;

pentru ( int itr : student_marks )

cout << itr << endl ;

// Actualizați elementul la index-3 cu 100

student_marks [ 3 ] = 100 ;

// Actualizați elementul la index-1 cu 60

student_marks [ 1 ] = 60 ;

cout << 'Note finale:' << endl ;

pentru ( int itr : student_marks )

cout << itr << endl ;

}

Ieșire:

Putem vedea că vectorul final deține elementele de actualizare la indicii 1 și 3.

2. Folosind funcția At().

Similar cu operatorul de index, at() este practic o funcție membru care actualizează valoarea pe baza indexului dintr-un iterator. Dacă indexul care este specificat în această funcție nu există, este aruncată excepția „std::out_of_range”.

vector. la ( poziție_index ) = Element

Luați în considerare vectorul „produse” cu cinci articole. Actualizați toate elementele prezente în vector cu alte elemente.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - produse cu 5 șiruri

vector < şir > produse { 'săpun' , 'şampon' , 'ulei' , 'fructe' , 'legume' } ;

cout << 'Produse existente: ' << endl ;

pentru ( string itr : produse )

cout << itr << endl ;

//Actualizarea tuturor șirurilor

produse. la ( 0 ) = 'Tort' ;

produse. la ( 1 ) = 'Ciocolată' ;

produse. la ( 2 ) = 'Fructe' ;

produse. la ( 3 ) = 'ceapa' ;

produse. la ( 4 ) = 'Bauturi nealcoolice' ;



cout << ' \n Produse finale: ' << endl ;

pentru ( string itr : produse )

cout << itr << endl ;

}

Ieșire:

Eliminați un element specific dintr-un vector

În C++, std::vector::erase() funcția este utilizată pentru a elimina un anumit element/gamă de elemente dintr-un vector. Elementele sunt eliminate în funcție de pozițiile iteratorului.

Sintaxă:

vector. şterge ( poziţia iteratorului )

Să vedem sintaxa pentru eliminarea elementului specific dintr-un vector. Putem folosi funcțiile begin() sau end() pentru a obține poziția elementului care este prezent în vectorul care urmează să fie eliminat.

Luați în considerare vectorul „produse” cu cinci articole.

  1. Eliminați al treilea element specificând iteratorul begin(). Begin() indică primul element din vector. Dacă adăugăm două la această funcție, acesta indică al treilea element.
  2. Eliminați ultimul element prin specificarea iteratorului end(). End() indică ultimul element din vector.
#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - produse cu 5 șiruri

vector < şir > produse { 'săpun' , 'şampon' , 'ulei' , 'fructe' , 'legume' } ;

cout << 'Produse existente: ' << endl ;

pentru ( string itr : produse )

cout << itr << endl ;



// Eliminați al 3-lea element

produse. şterge ( produse. ÎNCEPE ( ) + 2 ) ;

cout << ' \n După îndepărtarea celui de-al treilea element: \n ' ;

pentru ( string itr : produse )

cout << itr << endl ;

// Elimina ultimul element

produse. şterge ( produse. Sfârşit ( ) ) ;

cout << ' \n După îndepărtarea ultimului element: \n ' ;

pentru ( string itr : produse )

cout << itr << endl ;

}

Ieșire:

Acum, există doar trei elemente („săpun”, „șampon”, „fructe”) care există în vectorul „produse”.

Eliminați toate elementele dintr-un vector

Scenariul 1: Eliminați o serie de elemente dintr-un vector

Să folosim funcția std::vector::erase() pentru a elimina mai multe elemente dintr-un interval.

Sintaxă:

vector. şterge ( primul iterator, ultimul iterator )

Cele două iteratoare (begin() indică primul element și end() indică ultimele funcții ale elementului) sunt utilizate pentru a specifica intervalul.

Luați în considerare vectorul „produse” cu cinci articole și eliminați toate elementele din a doua poziție. Pentru a realiza acest lucru, primul iterator este început (produse)+1 care indică al doilea element, iar al doilea iterator este final (produse).

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - produse cu 5 șiruri

vector < şir > produse { 'săpun' , 'şampon' , 'ulei' , 'fructe' , 'legume' } ;

cout << 'Produse existente: ' << endl ;

pentru ( string itr : produse )

cout << itr << endl ;



// Scoateți toate elementele din a doua poziție

produse. şterge ( ÎNCEPE ( produse ) + 1 ,Sfârşit ( produse ) ) ;

cout << ' \n Produse finale: \n ' ;

pentru ( string itr : produse )

cout << itr << endl ;

}

Ieșire:

Acum, există un singur element („săpun”) care este prezent în vectorul „produse”.

Scenariul 2: Eliminați toate elementele din vector

Să folosim std::vector::clear() funcția de a elimina toate elementele din vector.

Sintaxă:

vector. clar ( )

Nu sunt transferați parametri acestei funcții.

Luați în considerare același vector care a fost utilizat în primul scenariu și eliminați toate elementele folosind funcția clear().

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - produse cu 5 șiruri

vector < şir > produse { 'săpun' , 'şampon' , 'ulei' , 'fructe' , 'legume' } ;

cout << 'Produse existente: ' << endl ;

pentru ( string itr : produse )

cout << itr << endl ;



// Îndepărtați toate elementele din produse

produse. clar ( ) ;

cout << ' \n Produse finale: \n ' ;

pentru ( string itr : produse )

cout << itr << endl ;

}

Ieșire:

Putem vedea că nu există elemente în vectorul „produse”.

Uniunea Vectorilor

Este posibilă efectuarea operației UNION pe vectori folosind funcția std::set_union(). Union returnează elementele unice din vectori ignorând elementele duplicate. Trebuie să trecem ambii iteratoare la această funcție. Împreună cu aceasta, trebuie trecut un iterator de ieșire care stochează rezultatul care este returnat de ambii iteratoare.

Sintaxă:

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

Aici:

  1. „first1” indică primul element al primului iterator (vector).
  2. „Last1” indică ultimul element al primului iterator (vector).
  3. „first2” indică primul element al celui de-al doilea iterator (vector).
  4. „Last2” indică ultimul element al celui de-al doilea iterator (vector).

Creați doi vectori – „subiecții1” și „subiecții2” – de tipul întreg.

  1. Sortați cei doi vectori folosind funcția sort() prin trecerea iteratorilor.
  2. Creați un vector de ieșire (iterator).
  3. Găsiți uniunea acestor doi vectori folosind funcția std::set_union(). Utilizați begin() ca primul iterator și end() ca ultimul iterator.
  4. Repetați vectorul de ieșire pentru a afișa elementele care sunt returnate de funcție.
#include

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - marks1

vector < int > note 1 = { 100 , 90 , 80 , 70 , 60 } ;



// Creați vector - marks2

vector < int > note 2 = { 80 , 90 , 60 , 70 , 100 } ;

// Sortează ambii vectori

fel ( note 1. ÎNCEPE ( ) , note1. Sfârşit ( ) ) ;

fel ( note 2. ÎNCEPE ( ) , note2. Sfârşit ( ) ) ;

vector < int > outputVector ( note 1. mărimea ( ) + note 2. mărimea ( ) ) ;

vector < int > :: iterator este ;

i = set_union ( note 1. ÎNCEPE ( ) , note1. Sfârşit ( ) ,

note 2. ÎNCEPE ( ) ,marcaj2. Sfârşit ( ) ,

outputVector. ÎNCEPE ( ) ) ;

cout << ' \n nota 1 nota U2: \n ' ;

pentru ( s = outputVector. ÎNCEPE ( ) ; s ! = i ; ++ s )

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

}

Ieșire:

Există doar cinci elemente unice în ambii vectori (subiecții1 și subiecții2).

Intersecția Vectorilor

Găsirea intersecției a doi vectori poate fi posibilă folosind funcția std::set_intersection(). Intersecția returnează elementele care sunt prezente în ambii vectori.

Sintaxă:

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

Parametrii care sunt transferați funcției set_union() pot fi trecuți și acestei funcții set_intersection().

Creați doi vectori – „subiecții1” și „subiecții2” – de tipul întreg.

  1. Sortați cei doi vectori folosind funcția sort() prin trecerea iteratorilor.
  2. Creați un vector de ieșire (iterator).
  3. Găsiți intersecția acestor doi vectori folosind funcția std::set_intersection(). Utilizați begin() ca primul iterator și end() ca ultimul iterator.
  4. Repetați vectorul de ieșire pentru a afișa elementele care sunt returnate de funcție.
#include

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - marks1

vector < int > note 1 = { 100 , 10 , 80 , 40 , 60 } ;



// Creați vector - marks2

vector < int > note 2 = { cincizeci , 90 , 60 , 10 , 100 } ;

// Sortează ambii vectori

fel ( note 1. ÎNCEPE ( ) , note1. Sfârşit ( ) ) ;

fel ( note 2. ÎNCEPE ( ) , note2. Sfârşit ( ) ) ;

vector < int > outputVector ( note 1. mărimea ( ) + note 2. mărimea ( ) ) ;

vector < int > :: iterator este ;

i = set_intersection ( note 1. ÎNCEPE ( ) , note1. Sfârşit ( ) ,

note 2. ÎNCEPE ( ) ,marcaj2. Sfârşit ( ) ,

outputVector. ÎNCEPE ( ) ) ;

cout << ' \n note1 ∩ note2: \n ' ;

pentru ( s = outputVector. ÎNCEPE ( ) ; s ! = i ; ++ s )

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

}

Ieșire:

Există doar trei elemente prezente în ambii vectori (subiecții1 și subiecții2).

Verificați dacă vectorul este gol sau nu

Înainte de a lucra la vectori, este important să verificați dacă vectorul este gol sau nu. De asemenea, este o bună practică în proiectele software să verifici dacă vectorul este gol sau nu înainte de a face operațiuni precum operațiuni CRUD etc.

1. Folosind Std::vector::empty()

Această funcție returnează 1 dacă vectorul este gol (nu conține niciun element). În caz contrar, se returnează 0. Niciun parametru nu este transmis acestei funcții.

2. Folosind Std::vector::size()

Funcția std::vector::size() returnează întregul care reprezintă numărul total de elemente care sunt prezente în vector.

Creați doi vectori – „college1” și „college2”. „College1” conține cinci elemente, iar „college2” este gol. Aplicați ambele funcții pe ambii vectori și verificați rezultatul.

#include

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - colegiu1

vector < şir > facultate1 = { 'colegiul-A' , 'facultate-B' , 'facultate-C' , 'colegiul-D' , 'colegiul-E' } ;

// Creați vector - colegiu2

vector < şir > facultate2 ;

// gol()

cout << facultate1. gol ( ) << endl ;

cout << facultate2. gol ( ) << endl ;

// mărimea()

cout << facultate1. mărimea ( ) << endl ;

cout << facultate2. mărimea ( ) << endl ;

}

Ieșire:

Funcția empty() returnează 0 pentru „college1” și 1 pentru „college2”. Funcția size() returnează cinci pentru „college1” și 0 pentru „college2”.

Traversați un vector folosind Const_Iterator

Când lucrați la containere C++, cum ar fi seturi, vectori etc., este posibil să repetați toate elementele care sunt prezente în container fără a le modifica. The const_iterator este unul dintre iteratorii care realizează acest scenariu. cbegin() (indică primul element din vector) și cend() (indică ultimul element din vector) sunt cele două funcții furnizate de fiecare container care este folosit pentru a returna iteratorul constant la începutul și sfârșitul containerul. În timpul iterării vectorului, putem utiliza aceste două funcții.

  1. Să creăm un vector numit „departamente” cu cinci șiruri.
  2. Declarați un const_iterator – ctr de tip <șir>.
  3. Iterați peste departamente folosind iteratorul anterior folosind bucla „for” și afișați-o.
#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - departamente

vector < şir > departamente = { 'Vânzări' , 'Serviciu' ,

'HR' , 'ACEASTA' , 'Alții' } ;



vector < şir > :: const_iterator ctr ;

// Iterează peste departamente folosind const_iterator - ctr.

pentru ( ctr = departamente. cbegin ( ) ; ctr ! = departamente. câțiva ( ) ; ctr ++ ) {

cout << * ctr << endl ;

}

}

Ieșire:

Traversați un vector folosind Reverse_Iterator

The reverse_iterator este, de asemenea, un iterator care este similar cu const_iterator, dar returnează elementele în sens invers. rbegin() (indică ultimul element din vector) și rend() (indică primul element din vector) sunt cele două funcții furnizate de fiecare container care este folosit pentru a returna iteratorul constant la sfârșitul și începutul lui. containerul.

  1. Să creăm un vector numit „departamente” cu cinci șiruri.
  2. Declarați un reverse_iterator – rtr de tip <șir>.
  3. Iterați peste departamente folosind iteratorul anterior folosind bucla „for” și afișați-o.
#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - departamente

vector < şir > departamente = { 'Vânzări' , 'Serviciu' ,

'HR' , 'ACEASTA' , 'Alții' } ;



vector < şir > :: reverse_iterator rtr ;

// Iterează peste departamente folosind reverse_iterator - rtr.

pentru ( rtr = departamente. a începe ( ) ; rtr ! = departamente. face ( ) ; rtr ++ ) {

cout << * rtr << endl ;

}

}

Ieșire:

Împingeți Elementele în Vector

Împingerea sau adăugarea elementelor într-un vector este o inserție unidirecțională care se poate face folosind vector::push_back() funcţie.

Sintaxă:

vector. împinge înapoi ( element )

Este nevoie ca un element să fie împins în vector ca parametru.

Să creăm un vector gol numit „departamente” cu cinci șiruri și să împingem două șiruri unul după altul folosind funcția push_back().

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Inițializează vector - departamente

vector < şir > departamente ;

cout << „Departamente reale:” << endl ;

pentru ( auto itr = departamente. ÎNCEPE ( ) ; itr ! = departamente. Sfârşit ( ) ; ++ itr )

cout << * itr << endl ;

// Apăsați „Vânzări”

departamente. împinge înapoi ( 'Vânzări' ) ;

// Împingeți-l'

departamente. împinge înapoi ( 'ACEASTA' ) ;

cout << ' \n Departamente finale:' << endl ;

pentru ( auto itr = departamente. ÎNCEPE ( ) ; itr ! = departamente. Sfârşit ( ) ; ++ itr )

cout << * itr << endl ;

}

Ieșire:

Mai întâi, împingem „Vânzări”. După aceea, „IT” este împins în vector. Acum, vectorul „departamente” conține două elemente.

Scoateți elementele din vector

Dacă doriți să ștergeți ultimul element care este prezent în vector, utilizând vector::pop_back() funcția este cea mai bună abordare. Acesta șterge ultimul element care este prezent în vector.

Sintaxă:

vector. pop_back ( )

Nu este necesar niciun parametru pentru această funcție. Arată comportamentul nedefinit dacă încercăm să ștergem ultimul element dintr-un vector gol.

Să creăm un vector gol numit „departamente” cu cinci șiruri și să ștergem ultimul element folosind funcția anterioară. Afișați vectorul în ambele cazuri.

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Inițializează vector - departamente

vector < şir > departamente = { 'Vânzări' , 'ACEASTA' , 'Serviciu' , 'Marketing' , 'HR' } ;

cout << „Departamente reale:” << endl ;

pentru ( auto itr = departamente. ÎNCEPE ( ) ; itr ! = departamente. Sfârşit ( ) ; ++ itr )

cout << * itr << endl ;



// Șterge ultimul element

departamente. pop_back ( ) ;

cout << ' \n Departamente finale:' << endl ;

pentru ( auto itr = departamente. ÎNCEPE ( ) ; itr ! = departamente. Sfârşit ( ) ; ++ itr )

cout << * itr << endl ;

}

Ieșire:

„HR” este ultimul element prezent în vectorul „departamente”. Deci, este eliminat din vector, iar vectorul final conține „Vânzări”, „IT”, „Servicii” și „Marketing”.

Schimbați vectorii

The vector::swap() funcția în C++ STL este folosită pentru a schimba toate elementele care sunt prezente în doi vectori.

Sintaxă:

primul_vector. schimb ( al doilea_vector )

Nu ia în considerare dimensiunea vectorilor, dar vectorii ar trebui să fie de același tip (se produce eroare dacă tipurile de vectori sunt diferite).

Să creăm doi vectori – „fructe” și „legume” – de tip șir cu dimensiuni diferite. Schimbați fiecare dintre ele și afișați vectorii în ambele cazuri.

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Inițializează vectorul - fructe

vector < şir > fructe = { 'Măr' , 'Mango' } ;

cout << 'Fructe reale:' << endl ;

pentru ( auto itr = fructe. ÎNCEPE ( ) ; itr ! = fructe. Sfârşit ( ) ; ++ itr )

cout << * itr << endl ;



// Inițializează vectorul - legume

vector < şir > legume = { 'Cartof' , 'Roșie' , 'Brinjal' } ;

cout << ' \n Legume reale:' << endl ;

pentru ( auto itr = legume. ÎNCEPE ( ) ; itr ! = legume. Sfârşit ( ) ; ++ itr )

cout << * itr << endl ;



// Schimbați elementele din ambii vectori

fructe. schimb ( legume ) ;

cout << ' \n Fructe după schimbare:' << endl ;

pentru ( auto itr = fructe. ÎNCEPE ( ) ; itr ! = fructe. Sfârşit ( ) ; ++ itr )

cout << * itr << endl ;

cout << ' \n Legume după schimbare:' << endl ;

pentru ( auto itr = legume. ÎNCEPE ( ) ; itr ! = legume. Sfârşit ( ) ; ++ itr )

cout << * itr << endl ;

}

Ieșire:

Anterior, vectorul „fructe” conține două elemente, iar vectorul „legume” conține trei elemente. După schimbare, vectorul „fructe” conține trei elemente, iar vectorul „legume” conține două elemente.

Preluați primul element din vector

În unele cazuri, cerința este să returnați doar primul element din vector. Funcția vector::front() din C++ STL preia doar primul element din vector.

Sintaxă:

vector. față ( )

Această funcție nu va prelua niciun parametru. Dacă vectorul este gol, este aruncată o eroare.

Să creăm doi vectori – „fructe” și „legume” – de tip șir și să încercăm să obținem primul element separat de cei doi vectori.

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - fructe cu 2 elemente

vector < şir > fructe = { 'Măr' , 'Mango' } ;

// Returnează primul element

cout << fructe. față ( ) << endl ;



// Inițializare vector - legume

vector < şir > legume ;

// Încercați să returnați primul element

cout << legume. față ( ) ;

}

Ieșire:

„Mărul” este primul element prezent în vectorul „fructe”. Deci, este returnat. Dar o eroare este aruncată atunci când încercăm să preluăm primul element din vectorul „legume”, deoarece este gol.

Preluați ultimul element din vector

Funcția vector::end() din C++ STL preia doar ultimul element din vector.

Sintaxă:

vector. înapoi ( )

Această funcție nu va prelua niciun parametru. Dacă vectorul este gol, este aruncată o eroare.

Să creăm doi vectori – „fructe” și „legume” – de tip șir și să încercăm să obținem ultimul element separat de cei doi vectori.

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - fructe cu 2 elemente

vector < şir > fructe = { 'Măr' , 'Mango' } ;

// Preluați ultimul element

cout << fructe. înapoi ( ) << endl ;



// Inițializare vector - legume

vector < şir > legume ;

// Încercați să preluați ultimul element

cout << legume. înapoi ( ) ;

}

Ieșire:

„Mango” este ultimul element prezent în vectorul „fructe”. Deci, este returnat. Dar o eroare este aruncată atunci când încercăm să preluăm ultimul element din vectorul „legume”, deoarece este gol.

Atribuiți noi valori unui vector

În unele scenarii, dacă doriți să actualizați toate valorile cu noua valoare sau să creați un vector cu aceleași valori, utilizarea funcției vector::assign() este cea mai bună abordare. Folosind această funcție, putem:

  1. Creați vectorul cu toate elementele similare
  2. Modificați vectorul existent cu același element

Sintaxă:

vector. atribui ( dimensiune, valoare )

Pentru această funcție sunt necesari doi parametri.

Aici:

  1. Dimensiunea specifică numărul de elemente care trebuie alocate.
  2. Valoarea specifică elementul care trebuie atribuit.

Să creăm un vector numit „marks1” cu cinci valori și să actualizăm acest vector cu patru elemente, astfel încât toate elementele din vectorul actualizat să fie egale cu 20.

#include

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - marks1

vector < int > note 1 = { 100 , 90 , 80 , 70 , 60 } ;

cout << 'Vector real:' << endl ;

pentru ( int i = 0 ; i < note 1. mărimea ( ) ; i ++ )

cout << note 1 [ i ] << endl ;



note 1. atribui ( 4 , douăzeci ) ;



cout << ' \n Vector actualizat:' << endl ;

pentru ( int i = 0 ; i < note 1. mărimea ( ) ; i ++ )

cout << note 1 [ i ] << endl ;

}

Ieșire:

Anterior, vectorul conține cinci elemente diferite. Acum, conține doar patru elemente și toate sunt egale cu 20.

Extinde vectorul folosind Emplace()

Știm deja că elemente noi sunt inserate dinamic în orice poziție dintr-un vector. Este posibil folosind funcția vector::emplace(). Să ne uităm rapid la sintaxa și parametrii acceptați de această funcție.

Sintaxă:

vector. Locație ( poziție const_iterator, element )

Doi parametri obligatorii sunt trecuți acestei funcție.

Aici:

  1. Primul parametru ia poziția astfel încât să putem introduce elementul în orice poziție. Putem obține poziția folosind funcția de iterator begin() sau end().
  2. Al doilea parametru este elementul care trebuie inserat în vector.

Luați în considerare vectorul „chimice” cu două elemente.

  1. Introduceți „Mangan” în prima poziție – începe (substanțe chimice)
  2. Introduceți „Cupru” în ultima poziție – capăt (substanțe chimice)
  3. Introduceți „Sulphur” în a treia poziție – începe (substanțe chimice)+2
#include

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - substanțe chimice

vector < şir > chimicale = { 'Oxigen' , 'CO' } ;

cout << „Substanțe chimice reale:” << endl ;

pentru ( int i = 0 ; i < chimicale. mărimea ( ) ; i ++ )

cout << chimicale [ i ] << endl ;



// Inserați elementul în prima poziție

chimicale. Locație ( ÎNCEPE ( chimicale ) , 'Mangan' ) ;



// Inserați elementul în ultima poziție

chimicale. Locație ( Sfârşit ( chimicale ) , 'Cupru' ) ;



// Inserați elementul în a treia poziție

chimicale. Locație ( ÎNCEPE ( chimicale ) + 2 , 'Sulf' ) ;



cout << ' \n Produse chimice finale:' << endl ;

pentru ( int i = 0 ; i < chimicale. mărimea ( ) ; i ++ )

cout << chimicale [ i ] << endl ;

}

Ieșire:

Acum, vectorul final conține cinci elemente (furnizate în următoarea captură de ecran).

Extinde vectorul folosind Emplace_Back()

Se poate adăuga un element (adăugând la sfârșitul vectorului) care se poate face folosind vector::emplace_back() funcţie.

Sintaxă:

vector. plasează_înapoi ( element )

Este obligatoriu să treceți elementul care urmează să fie atașat vectorului ca parametru.

Să adăugăm două elemente unul după altul folosind funcția emplace_back().

#include

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - substanțe chimice

vector < şir > chimicale = { 'Oxigen' , 'CO' } ;

cout << „Substanțe chimice reale:” << endl ;

pentru ( int i = 0 ; i < chimicale. mărimea ( ) ; i ++ )

cout << chimicale [ i ] << endl ;



// Se introduce mangan la sfârșitul vectorului

chimicale. plasează_înapoi ( 'Mangan' ) ;



// Se introduce mangan la sfârșitul vectorului

chimicale. plasează_înapoi ( 'Cupru' ) ;





cout << ' \n Produse chimice finale:' << endl ;

pentru ( int i = 0 ; i < chimicale. mărimea ( ) ; i ++ )

cout << chimicale [ i ] << endl ;

}

Ieșire:

Acum, vectorul final conține patru elemente după ce a adăugat „Mangan” și „Cupru”.

Elementul maxim al unui vector

  1. Creați un vector cu unele elemente.
  2. Pentru a găsi elementul maxim care este prezent în vector, utilizați funcția *max_element() care acceptă doi iteratoare ca argumente. Acești doi parametri acționează ca interval, iar elementul maxim este returnat în intervalul furnizat. Poziția de pornire este begin() și ultima poziție este end().
* element_max ( primul_Index, ultimul_Index )

Să luăm în considerare un vector numit „item_costs” care conține cinci valori de tip întreg și returnează elementul maxim.

#include

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - item_costs

vector < int > item_costs = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << „Costul articolelor: \n ' ;

pentru ( int i = 0 ; i < item_costs. mărimea ( ) ; i ++ )

cout << item_costs [ i ] << endl ;



// Returnează elementul maxim din vectorul de mai sus - item_costs

cout << ' \n Cost maxim: ' << * element_max ( ÎNCEPE ( item_costs ) ,Sfârşit ( item_costs ) ) ;

}

Ieșire:

Aici, 8900 este elementul maxim dintre toate elementele care sunt prezente în vectorul ”item_costs”.

Elementul minim al unui vector

  1. Creați un vector cu unele elemente.
  2. Pentru a găsi elementul minim care este prezent în vector, utilizați funcția *min_element() care acceptă doi iteratoare ca argumente. Acești doi parametri acționează ca interval, iar elementul minim (mai puțin decât toate celelalte elemente) este returnat în intervalul furnizat. Poziția de pornire este begin() și ultima poziție este end().
* element_min ( primul_Index, ultimul_Index )

Utilizați același vector care este creat pentru a găsi elementul maxim și pentru a găsi elementul minim folosind funcția *min_element().

#include

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - item_costs

vector < int > item_costs = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << „Costul articolelor: \n ' ;

pentru ( int i = 0 ; i < item_costs. mărimea ( ) ; i ++ )

cout << item_costs [ i ] << endl ;



// Returnează elementul minim din vectorul de mai sus - item_costs

cout << ' \n Cost minim: ' << * element_min ( ÎNCEPE ( item_costs ) ,Sfârşit ( item_costs ) ) ;

}

Ieșire:

Aici, 200 este elementul minim dintre toate elementele care sunt prezente în vectorul „item_costs”.

Suma elementelor dintr-un vector

Pentru a returna suma tuturor elementelor care sunt prezente în vector, the acumula() este folosită funcția în C++ STL. Acceptă trei parametri. Primul parametru ia primul index care reprezintă elementul de pornire din interval (specificați iteratorul begin()), iar al doilea parametru ia ultimul index care reprezintă elementul final din interval (specificați iteratorul end()). În cele din urmă, trebuie să trecem valoarea inițială a sumei (în cazul nostru, este 0).

acumula ( primul_index, ultimul_index, initial_val ) ;

Creați un vector numit „item_costs” cu cinci elemente de tip întreg și calculați suma.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați vector - item_costs

vector < int > item_costs = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << „Costul articolelor: \n ' ;

pentru ( int i = 0 ; i < item_costs. mărimea ( ) ; i ++ )

cout << item_costs [ i ] << endl ;



// Returnează suma tuturor elementelor din vectorul de mai sus - item_costs

cout << ' \n Cost total: ' << acumula ( ÎNCEPE ( item_costs ) ,Sfârşit ( item_costs ) , 0 ) ;

}

Ieșire:

Suma 8900, 5677, 200, 1000, 2300 este 18077.

Înmulțirea în funcție de elemente a doi vectori

  1. Creați doi vectori de tip numeric și doi vectori trebuie să fie de aceeași dimensiune (numărul total de elemente prezente în primul vector = numărul total de elemente prezente în al doilea vector).
  2. Declarați un vector nou și utilizați pentru buclă , efectuați operația de înmulțire pe două elemente în fiecare iterație și stocați valoarea în vectorul creat folosind funcția push_back().
  3. pentru ( int itr = 0 ; i < primul_vec. mărimea ( ) ; itr ++ )

    {

    vector_rezultat. împinge înapoi ( primul_vec [ itr ] * sec_lucru [ itr ] ) ;

    }
  4. Afișați elementele care sunt prezente în vectorul rezultat prin iterarea acestuia.

Creați un vector numit „item_costs” cu cinci elemente de tip întreg și calculați suma.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați doi vectori - products1 și products2 cu câte 5 elemente fiecare

vector < int > produse1 = { 10 , douăzeci , 30 , 40 , cincizeci } ;

vector < int > produse2 = { cincizeci , 40 , 30 , 70 , 60 } ;



vector < int > rezultate_produse ;



// Efectuați înmulțirea în funcție de elemente

pentru ( int i = 0 ; i < produse1. mărimea ( ) ; i ++ ) {

rezultate_produse. împinge înapoi ( produse1 [ i ] * produse2 [ i ] ) ;

}



// Afișează vectorul rezultat

cout << „Înmulțirea vectorială: \n ' ;

pentru ( int res : rezultate_produse )

cout << res << endl ;

}

Ieșire:

Repetare - 1 : 10 * cincizeci => 500

Repetare - 2 : douăzeci * 40 => 800

Repetare - 3 : 30 * 30 => 900

Repetare - 4 : 40 * 70 => 2800

Repetare - 5 : cincizeci * 60 => 3000

Produsul punctual al doi vectori

În cazul vectorilor C++, produsul punctual este definit ca „suma produselor intrărilor corespunzătoare ale celor două secvențe de vectori”.

Sintaxă:

produs intern ( Vector1 primul, Vector1 ultimul, Vector2 primul, Initial_Val )

Utilizați funcția inner_product() pentru a returna produsul punctual. Această funcție ia patru parametri necesari.

Aici:

  1. Primul parametru se referă la un iterator care indică începutul primului vector (specificați folosind funcția begin()).
  2. Al doilea parametru se referă la un iterator care indică sfârșitul primului vector (specificați folosind funcția end()).
  3. Al treilea parametru se referă la un iterator care indică începutul celui de-al doilea vector (specificați folosind funcția begin()).
  4. Valoarea inițială trebuie să fie transmisă ca ultimul parametru care este un număr întreg pentru acumularea produsului punctual.

Utilizați același program care este creat pentru înmulțirea a doi vectori și utilizați funcția innsr_product() pentru a găsi produsul punctual al celor doi vectori.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați doi vectori - products1 și products2 cu câte 5 elemente fiecare

vector < int > produse1 = { 10 , douăzeci , 30 , 40 , cincizeci } ;

vector < int > produse2 = { cincizeci , 40 , 30 , 70 , 60 } ;



// Afișează vectorul rezultat

cout << 'Produs punct al produselor1 și al produselor2: ' ;

cout << produs intern ( ÎNCEPE ( produse1 ) ,Sfârşit ( produse1 ) ,ÎNCEPE ( produse2 ) , 0 ) ;

}

Ieșire:

( 10 * cincizeci ) + ( douăzeci * 40 ) + ( 30 * 30 ) + ( 40 * 70 ) + ( cincizeci * 60 )

=> 500 + 800 + 900 + 2800 + 3000

=> 8000

Convertiți un set într-un vector

Există multe modalități de a converti o mulțime într-un vector prin trecerea tuturor elementelor care sunt ridicate într-un set într-un vector. Cel mai bun și cel mai simplu mod este folosirea funcției std::copy().

Sintaxă

std :: copie ( sourceIterator primul, sourceIterator ultimul, destinationIterator primul )

Folosește std::copy() funcţie care inserează elementele dintr-o mulţime în vector. Este nevoie de trei parametri.

Aici:

  1. Primul parametru se referă la iteratorul sursă care indică primul element din iterator. Aici, set este iteratorul sursă care este specificat folosind funcția begin().
  2. În mod similar, al doilea parametru indică ultimul element (funcția end()).
  3. Al treilea parametru se referă la iteratorul de destinație care indică primul element (specificat folosind funcția begin())  din iterator.

Să creăm un set cu cinci elevi și să copiem toate elementele într-un vector folosind funcția anterioară.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați un set - elevi cu 5 elemente

a stabilit < şir > elevi = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' } ;

cout << 'A stabilit: \n ' ;

pentru ( șirul i : elevi )

cout << i << endl ;



// Create Vector - student_vcof dimensiune egală cu dimensiunea setului

vector < şir > student_vc ( elevi. mărimea ( ) ) ;



// Inserați elemente dintr-un set - elevi într-un Vector - student_vc.

copie ( elevi. ÎNCEPE ( ) , elevi. Sfârşit ( ) , student_vc. ÎNCEPE ( ) ) ;



cout << ' \n Vector: \n ' ;

pentru ( șirul i : student_vc )

cout << i << endl ;

}

Ieșire:

Acum, toate elementele care sunt prezente în setul „Students” sunt copiate în vectorul „students_vc”.

Eliminați elementele duplicate

  1. În primul rând, trebuie să sortăm elementele din vector, astfel încât toate elementele duplicate să fie adiacente unele cu altele folosind std::sort() funcţie.
  2. std :: fel ( Vector primul, vector ultimul ) ;
  3. Utilizați funcția std::unique() astfel încât elementele duplicate să fie selectate. În același timp, utilizați funcția erase() pentru a elimina duplicatele returnate de funcția std::unique(). Ordinea elementelor se poate modifica în vectorul final.
  4. vector. şterge ( std :: unic ( Vector primul, vector ultimul ) , Ultimul vector ) )

Creați vectorul „studenti” cu 10 elemente și returnați vectorul eliminând duplicatele.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați un vector - elevi cu 10 elemente

vector < şir > elevi = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' ,

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

cout << 'Elevi: \n ' ;

pentru ( șirul i : elevi )

cout << i << ' ' ;



// Sortează toate elementele din vectorul elevilor.

fel ( ÎNCEPE ( elevi ) , Sfârşit ( elevi ) ) ;



// Folosiți funcția unique() pentru a elimina duplicatele cu funcția erase().

elevi. şterge ( unic ( ÎNCEPE ( elevi ) , Sfârşit ( elevi ) ) , Sfârşit ( elevi ) ) ;



cout << ' \n \n Studenți unici: \n ' ;

pentru ( auto itr = cbegin ( elevi ) ; itr ! = câțiva ( elevi ) ; ++ itr ) {

cout << * itr << ' ' ;

}

}

Ieșire:

Acum, toate elementele sunt unice în vector.

Convertiți un vector într-un set

Setul nu permite elemente duplicate. Dacă tastați pentru a introduce un vector într-un set cu duplicate, acestea vor fi ignorate. Folosim aceeași funcție std::copy() care a fost folosită în scenariul anterior care a convertit setul într-un vector.

În acest scenariu:

  1. Primul parametru ia vectorul ca iterator sursă care este specificat folosind funcția begin().
  2. Al doilea parametru ia vectorul ca iterator sursă care este specificat folosind funcția end().
  3. Treceți funcția std::inserter() care este utilizată pentru a suprascrie/copia automat elementele într-o anumită poziție din set, furnizând setul și iteratorul care indică la sfârșitul setului ca parametri.

Să creăm un vector cu 10 numere întregi și să copiem elementele într-o mulțime.

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați un set - marcaje cu 10 valori

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

cout << 'Vector: \n ' ;

pentru ( int i : semne )

cout << i << ' ' ;



// Create Set - marks_set de dimensiunea egală cu dimensiunea vectorului

a stabilit < int > set_marks ;



// Inserați elemente dintr-un set - elevi într-un Vector - student_vc.

copie ( ÎNCEPE ( semne ) ,Sfârşit ( semne ) , insertor ( marks_set,end ( set_marks ) ) ) ;



cout << ' \n \n A stabilit: \n ' ;

pentru ( int i : set_marks )

cout << i << ' ' ;

}

Ieșire:

Vectorul existent numit „marke” are 10 valori. După ce l-a copiat în setul „marks_set”, conține doar șase elemente, deoarece celelalte patru elemente sunt duplicate.

Scoateți șirurile goale

Nu există nicio utilizare a șirurilor goale care sunt prezente într-un vector. Este o practică bună să eliminați șirurile goale care sunt prezente în vector. Să vedem cum să eliminați șirurile goale din vectorul C++:

  1. Repetați vectorul folosind bucla „for”.
  2. În fiecare iterație, verificați dacă elementul este gol (“”) sau nu utilizând operatorul „==” cu funcția membru at().
  3. Folosind funcția std::erase(), eliminați șirurile goale după verificarea condiției anterioare.
  4. Repetați pasul 2 și pasul 3 până la sfârșitul vectorului.

Să creăm vectorul „companii” cu 10 șiruri. Dintre acestea, cinci sunt goale și le eliminăm prin implementarea abordării anterioare.

#include

#include

folosind spatiu de nume std ;

principal ( ) {



vector < şir > companiilor { 'Compania-A' , '' , 'Compania-B' ,

'' , 'Compania-C' , '' , 'Compania-D' , '' , '' , '' } ;



// Iterați peste companii

// și eliminați elementele goale folosind erase()

pentru ( int itr = 1 ; itr < companiilor. mărimea ( ) ; ++ itr ) {

dacă ( companiilor. la ( itr ) == '' ) {

companiilor. şterge ( companiilor. ÎNCEPE ( ) + itr ) ;

-- itr ;

}
}

// Afișează vectorul


pentru ( auto & i : companiilor ) {

cout << i << endl ;

}

}

Ieșire:

Acum, vectorul „companii” deține șirurile negoale.

Scrieți un vector într-un fișier text

Să discutăm cum să scriem toate elementele care sunt prezente într-un vector într-un fișier folosind indicii vectoriali folosind fstream .

  1. Împingeți unele elemente în el folosind funcția push_back după inițializarea vectorului.
  2. Utilizați funcția open() din biblioteca „fstream” cu modul în afara.
  3. Traversați fiecare element care este prezent în vector folosind indicii într-o buclă „for” și scrieți fiecare element în fișierul furnizat.
  4. În cele din urmă, închideți fișierul.

Să implementăm abordarea anterioară rulând un cod C++.

#include

#include <șir>

#include

#include

folosind spatiu de nume std ;

principal ( )

{

// Creați un vector - v_data

// și împinge două elemente în el.

vector < şir > v_data ;

v_data. împinge înapoi ( 'Bine ati venit' ) ;

v_data. împinge înapoi ( „la LinuxHint” ) ;

pârâu f ;



// Deschideți fișierul

f. deschis ( „fisier_scris.txt” ,ios_base :: afară ) ;

// Repetați fiecare element al vectorului și scrieți în fișier unul câte unul.

pentru ( int i = 0 ; i < v_data. mărimea ( ) ; i ++ )

{

f << v_data [ i ] << endl ;

}

// Închideți fișierul

f. închide ( ) ;

}

Ieșire:

Vectorul „v_data” conține două elemente și este creat un fișier în calea în care este executat programul cu elementele care sunt prezente în vector.

Creați un vector dintr-un fișier text

Am învățat cum să scriem elementele care sunt prezente în vector într-un fișier text. Aici, să creăm un vector din conținutul care este prezent în fișierul text.

  1. Creaza un ' ifstream” variabilă care este folosită pentru a citi informațiile din fișierul text în care creăm vectorul din fișier.
  2. Creați un vector gol pentru a stoca conținutul fișierului și utilizați o variabilă șir goală ca indicator pentru a verifica sfârșitul fișierului.
  3. Citiți următoarea linie din fișier până când ajunge la sfârșit (folosind practic bucla „while”). Utilizați funcția push_back() pentru a citi următoarea linie și a o împinge în vector.
  4. Afișați separat linia care este prezentă în linie pentru a vedea elementele care sunt prezente în vector pe consolă.

Să implementăm abordarea anterioară rulând codul C++. Să luăm în considerare fișierul „data.txt” cu următorul conținut. Aici, numele vectorului este „v_data”.

#include

folosind spatiu de nume std ;

principal ( )

{

// Deschideți fișierul text - date
fișier ifstream ( „data.txt” ) ;

// Creați vector - v_data de tip - șir


vector < şir > v_data ;

tanga a fost ;

// Citiți următoarea linie din data.txt
// până ajunge la final.


in timp ce ( fişier >> a fost ) {

// Citiți următoarea linie și împingeți în v_data

v_data. împinge înapoi ( a fost ) ;

}



// Afișează separat linia prezentă în linie.

copie ( v_data. ÎNCEPE ( ) , v_data. Sfârşit ( ) , ostream_iterator < şir > ( cout , ' \n ' ) ) ;

}

Ieșire:

Putem vedea că „v_data” conține cinci elemente care au venit din fișier.

Concluzie

În acest articol lung, am explorat toate exemplele posibile care sunt utilizate în aplicațiile în timp real legate de vectori în limbajul de programare C++. Fiecare exemplu este explicat cu sintaxă, parametri și exemplu cu ieșire. Comentariile sunt adăugate în fiecare cod pentru a obține o înțelegere clară a codului.