Î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:
- Reprezentarea vectorilor matematici în aplicații științifice și de inginerie
- 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:
- Inserați un element într-un vector
- Inserați mai multe elemente într-un vector
- Accesați elementele dintr-un vector
- Actualizați elementul într-un vector
- Eliminați un element specific dintr-un vector
- Eliminați toate elementele dintr-un vector
- Uniunea Vectorilor
- Intersecția Vectorilor
- Verificați dacă vectorul este gol sau nu
- Traversați un vector folosind Const_Iterator
- Traversați un vector folosind Reverse_Iterator
- Împingeți Elementele în Vector
- Scoateți elementele din vector
- Schimbați vectorii
- Preluați primul element din vector
- Preluați ultimul element din vector
- Atribuiți noi valori unui vector
- Extinde vectorul folosind Emplace()
- Extinde vectorul folosind Emplace_Back()
- Elementul maxim al unui vector
- Elementul minim al unui vector
- Suma elementelor dintr-un vector
- Înmulțirea în funcție de elemente a doi vectori
- Produsul punctual al doi vectori
- Convertiți un set într-un vector
- Eliminați elementele duplicate
- Convertiți un vector într-un set
- Scoateți șirurile goale
- Scrieți un vector într-un fișier text
- 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().
#includefolosind 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:
- 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.
- Parametrul de dimensiune specifică de câte ori trebuie inserat un element.
- 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.
#includefolosind 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:
- Parametrul de poziție specifică poziția elementului de inserat.
- „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).
- „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”.
#includefolosind 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.
#includefolosind 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.
#includefolosind 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 ] = ElementLuaț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 ) = ElementLuați în considerare vectorul „produse” cu cinci articole. Actualizați toate elementele prezente în vector cu alte elemente.
#includefolosind 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.
- 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.
- Eliminați ultimul element prin specificarea iteratorului end(). End() indică ultimul element din vector.
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).
#includefolosind 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().
#includefolosind 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:
- „first1” indică primul element al primului iterator (vector).
- „Last1” indică ultimul element al primului iterator (vector).
- „first2” indică primul element al celui de-al doilea iterator (vector).
- „Last2” indică ultimul element al celui de-al doilea iterator (vector).
Creați doi vectori – „subiecții1” și „subiecții2” – de tipul întreg.
- Sortați cei doi vectori folosind funcția sort() prin trecerea iteratorilor.
- Creați un vector de ieșire (iterator).
- Găsiți uniunea acestor doi vectori folosind funcția std::set_union(). Utilizați begin() ca primul iterator și end() ca ultimul iterator.
- Repetați vectorul de ieșire pentru a afișa elementele care sunt returnate de funcție.
#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.
- Sortați cei doi vectori folosind funcția sort() prin trecerea iteratorilor.
- Creați un vector de ieșire (iterator).
- 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.
- Repetați vectorul de ieșire pentru a afișa elementele care sunt returnate de funcție.
#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.
- Să creăm un vector numit „departamente” cu cinci șiruri.
- Declarați un const_iterator – ctr de tip <șir>.
- Iterați peste departamente folosind iteratorul anterior folosind bucla „for” și afișați-o.
#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.
- Să creăm un vector numit „departamente” cu cinci șiruri.
- Declarați un reverse_iterator – rtr de tip <șir>.
- Iterați peste departamente folosind iteratorul anterior folosind bucla „for” și afișați-o.
#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:
- Creați vectorul cu toate elementele similare
- Modificați vectorul existent cu același element
Sintaxă:
vector. atribui ( dimensiune, valoare )Pentru această funcție sunt necesari doi parametri.
Aici:
- Dimensiunea specifică numărul de elemente care trebuie alocate.
- 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:
- 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().
- Al doilea parametru este elementul care trebuie inserat în vector.
Luați în considerare vectorul „chimice” cu două elemente.
- Introduceți „Mangan” în prima poziție – începe (substanțe chimice)
- Introduceți „Cupru” în ultima poziție – capăt (substanțe chimice)
- Introduceți „Sulphur” în a treia poziție – începe (substanțe chimice)+2
#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
- Creați un vector cu unele elemente.
- 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().
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
- Creați un vector cu unele elemente.
- 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().
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.
#includefolosind 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
- 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).
- 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(). pentru ( int itr = 0 ; i < primul_vec. mărimea ( ) ; itr ++ )
- Afișați elementele care sunt prezente în vectorul rezultat prin iterarea acestuia.
{
vector_rezultat. împinge înapoi ( primul_vec [ itr ] * sec_lucru [ itr ] ) ;
}
Creați un vector numit „item_costs” cu cinci elemente de tip întreg și calculați suma.
#includefolosind 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 => 500Repetare - 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:
- Primul parametru se referă la un iterator care indică începutul primului vector (specificați folosind funcția begin()).
- Al doilea parametru se referă la un iterator care indică sfârșitul primului vector (specificați folosind funcția end()).
- Al treilea parametru se referă la un iterator care indică începutul celui de-al doilea vector (specificați folosind funcția begin()).
- 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.
#includefolosind 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:
- 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().
- În mod similar, al doilea parametru indică ultimul element (funcția end()).
- 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ă.
#includefolosind 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
- Î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. std :: fel ( Vector primul, vector ultimul ) ;
- 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. vector. şterge ( std :: unic ( Vector primul, vector ultimul ) , Ultimul vector ) )
Creați vectorul „studenti” cu 10 elemente și returnați vectorul eliminând duplicatele.
#includefolosind 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:
- Primul parametru ia vectorul ca iterator sursă care este specificat folosind funcția begin().
- Al doilea parametru ia vectorul ca iterator sursă care este specificat folosind funcția end().
- 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.
#includefolosind 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++:
- Repetați vectorul folosind bucla „for”.
- În fiecare iterație, verificați dacă elementul este gol (“”) sau nu utilizând operatorul „==” cu funcția membru at().
- Folosind funcția std::erase(), eliminați șirurile goale după verificarea condiției anterioare.
- 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 .
- Împingeți unele elemente în el folosind funcția push_back după inițializarea vectorului.
- Utilizați funcția open() din biblioteca „fstream” cu modul în afara.
- Traversați fiecare element care este prezent în vector folosind indicii într-o buclă „for” și scrieți fiecare element în fișierul furnizat.
- Î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.
- Creaza un ' ifstream” variabilă care este folosită pentru a citi informațiile din fișierul text în care creăm vectorul din fișier.
- 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.
- 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.
- 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.