30 Mga Halimbawa ng C++ Vectors

30 Mga Halimbawa Ng C Vectors



Sa C++, ang Vector ay isang isang dimensional na istraktura ng data na dynamic na pinapataas ang sarili nito batay sa kinakailangan. Ang organisasyon ng data (insertion/modification/delete) ay maaaring gawin nang mahusay sa istruktura ng data na ito. Kasama sa mga aplikasyon nito ang mga sumusunod:

  1. Kinakatawan ang mga mathematical vectors sa mga aplikasyong pang-agham at engineering
  2. Maaaring ipatupad ang mga pila, stack gamit ang istruktura ng data na ito, atbp.

Karamihan sa mga karaniwang pagpapatakbo at pag-andar ng CRUD na nauugnay sa istruktura ng data na ito ay tinatalakay nang detalyado sa senaryo na may syntax at mga snippet ng code.







Paksa ng Nilalaman:

  1. Magpasok ng isang Elemento sa isang Vector
  2. Magpasok ng Maramihang Elemento sa isang Vector
  3. I-access ang Mga Elemento mula sa isang Vector
  4. I-update ang Element sa isang Vector
  5. Alisin ang isang Partikular na Elemento mula sa isang Vector
  6. Alisin ang Lahat ng Elemento mula sa isang Vector
  7. Unyon ng mga Vector
  8. Intersection ng mga Vector
  9. Suriin Kung Walang laman ang Vector o Hindi
  10. Traverse a Vector Gamit ang Const_Iterator
  11. Traverse a Vector Gamit ang Reverse_Iterator
  12. Itulak ang Mga Elemento sa Vector
  13. I-pop ang Mga Elemento mula sa Vector
  14. Palitan ang mga Vector
  15. Kunin ang Unang Elemento mula sa Vector
  16. Kunin ang Huling Elemento mula sa Vector
  17. Magtalaga ng mga Bagong Value sa isang Vector
  18. Palawakin ang Vector Gamit ang Emplace()
  19. Palawakin ang Vector Gamit ang Emplace_Back()
  20. Pinakamataas na Elemento ng isang Vector
  21. Pinakamababang Elemento ng isang Vector
  22. Kabuuan ng mga Elemento sa isang Vector
  23. Element-Wise Multiplication ng Dalawang Vector
  24. Dot Product ng Dalawang Vector
  25. I-convert ang isang Set sa isang Vector
  26. Alisin ang Mga Duplicate na Elemento
  27. I-convert ang isang Vector sa isang Set
  28. Alisin ang Empty Strings
  29. Sumulat ng Vector sa isang Text File
  30. Gumawa ng Vector mula sa Text File

Magpasok ng isang Elemento sa isang Vector

Ang std::vector::insert() Ang function sa C++ STL ay ginagamit upang ipasok ang mga elemento sa tinukoy na posisyon.



Syntax:

vector. ipasok ( posisyon, elemento ) ;

Gamitin natin ang function na ito at ipasa ang unang posisyon bilang parameter na tumutukoy sa posisyon kung saan kailangang ipasok ang elemento at ibigay ang elemento bilang pangalawang parameter.



Ang begin() function ay maaaring gamitin dito upang ibalik ang isang iterator na tumuturo sa unang elemento ng input vector. Sa pamamagitan ng pagdaragdag ng posisyon sa function na ito, ipinapasok ang elemento sa posisyong iyon.





Gawin natin ang vector ng 'student_names' na may uri ng string at magpasok ng dalawang string sa una at pangalawang posisyon, isa-isa, gamit ang insert() function.

#include

gamit namespace std ;

pangunahing ( )

{

// Sinisimulan ang vector - student_names

vector < string > mga_estudyante ;

cout << 'Kasalukuyang vector: \n ' ;

para sa ( sasakyan i : mga_estudyante ) cout << i << endl ;

// Ipasok ang 'Sravan Kumar' sa unang posisyon

mga_estudyante. ipasok ( mga_estudyante. magsimula ( ) + 0 , 'Shravan Kumar' ) ;

// Ipasok ang 'Sravan Kumar' sa pangalawang posisyon

mga_estudyante. ipasok ( mga_estudyante. magsimula ( ) + 1 , 'Lalitha' ) ;

cout << 'Huling vector: \n ' ;

para sa ( sasakyan j : mga_estudyante ) cout << j << endl ;

}

Output:

Dati, walang laman ang vector na 'estudyante_names'. Pagkatapos ng pagpasok, ang vector ay mayroong dalawang elemento.



Magpasok ng Maramihang Elemento sa isang Vector

Ginagamit namin ang parehong function na std::vector::insert() sa sitwasyong ito. Ngunit kailangan nating ipasa ang dagdag/iba't ibang mga parameter sa parehong function upang magpasok ng maraming elemento sa isang vector.

Sitwasyon 1: Pagpasok ng Isang Elemento nang Maraming Beses

Sa sitwasyong ito, idinaragdag namin ang parehong elemento nang maraming beses.

Syntax:

vector. ipasok ( posisyon, sukat, elemento ) ;

Upang gawin ito, kailangan nating ipasa ang laki bilang pangalawang parameter sa insert() function. Ang kabuuang mga parameter na ipinasa sa function na ito ay tatlo.

dito:

  1. Tinutukoy ng parameter ng posisyon ang posisyon ng elemento na ilalagay. Kung mas malaki sa 1 ang laki, ang index ng panimulang posisyon ang magiging posisyon.
  2. Tinutukoy ng parameter ng laki kung ilang beses ilalagay ang isang elemento.
  3. Kinukuha ng parameter ng elemento ang elemento upang maipasok sa isang vector.

Isaalang-alang ang vector na 'student_names' na may dalawang string. Ipasok ang mga string ng 'Lavanya' ng limang beses sa pangalawang posisyon.

#include

gamit namespace std ;

pangunahing ( )

{

// Sinisimulan ang vector - student_names

vector < string > mga_estudyante { 'Shravan Kumar' , 'Lalitha' } ;

cout << 'Kasalukuyang vector: \n ' ;

para sa ( sasakyan i : mga_estudyante ) cout << i << endl ;

// Ipasok ang 'Lavanya' sa pangalawang posisyon ng 5 beses

mga_estudyante. ipasok ( mga_estudyante. magsimula ( ) + 1 , 5 , 'Lavanya' ) ;

cout << ' \n Panghuling vector: \n ' ;

para sa ( sasakyan j : mga_estudyante ) cout << j << endl ;

}

Output:

Sa umiiral na vector, ang 'Sravan Kumar' ay nasa unang posisyon at ang 'Lalitha' ay nasa pangalawang posisyon. Matapos ipasok ang 'Lavanya' ng limang beses (mula sa pangalawang posisyon hanggang sa ikaanim na posisyon), lumipat si 'Lalitha' sa ikapitong posisyon (huling).

Scenario 2: Paglalagay ng Maramihang Elemento

Sa sitwasyong ito, idinaragdag namin ang iba't ibang elemento sa isang pagkakataon mula sa isa pang vector. Ginagamit din namin ang parehong function dito ngunit magbabago ang syntax at mga parameter.

Syntax:

vector. ipasok ( posisyon, first_iterator, second_iterator ) ;

Upang gawin ito, kailangan nating ipasa ang laki bilang pangalawang parameter sa insert() function. Ang kabuuang mga parameter na ipinasa sa function na ito ay tatlo.

dito:

  1. Tinutukoy ng parameter ng posisyon ang posisyon ng elemento na ilalagay.
  2. Tinukoy ng “first_iterator” ang panimulang posisyon kung saan ilalagay ang mga elemento (sa pangkalahatan, gamit ang begin() function, ibabalik ang isang iterator na tumuturo sa unang elemento na nasa container).
  3. Ang 'second_iterator' ay tumutukoy sa pagtatapos na posisyon hanggang sa kung saan ang mga elemento ay dapat ipasok (sa pangkalahatan, gamit ang end() function, isang iterator ay ibabalik na tumuturo sa tabi ng huling punto na naroroon sa lalagyan).

Lumikha ng dalawang vectors, 'marks1' at 'marks2', ng integer type. Ipasok ang lahat ng mga elemento na naroroon sa 'marks2' vector sa unang posisyon ng 'marks1' vector.

#include

gamit namespace std ;

pangunahing ( )

{

// Sinisimulan ang vector - marks1

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

cout << 'Unang vector: \n ' ;

para sa ( sasakyan i : marka1 ) cout << i << endl ;

// Sinisimulan ang vector - marks2

vector < int > marka2 { 56 , Apat. Lima , 65 } ;

cout << 'Ikalawang vector: \n ' ;

para sa ( sasakyan j : marka2 ) cout << j << endl ;

marka1. ipasok ( magsimula ( marka1 ) , magsimula ( marka2 ) , wakas ( marka2 ) ) ;



// Huling vector

cout << 'Unang-Panghuling vector: \n ' ;

para sa ( sasakyan x : marka1 )

cout << x << '' ;

}

Output:

Ang unang vector (marks1) ay mayroong limang elemento at ang pangalawang vector (marks2) ay mayroong tatlong elemento. Ipinasa namin ang begin (marks1), begin(marks2), end(marks2) na mga parameter sa function na 'insert' upang ang lahat ng elemento na naroroon sa pangalawang vector ay inuulit at ipinasok sa unang vector sa simula. Kaya, ang unang vector ay mayroong walong elemento.

I-access ang Mga Elemento mula sa isang Vector

1. Gamit ang [] Operator

Sa ilang mga sitwasyon, maaaring kailanganin mong ibalik lamang ang mga partikular na elemento mula sa vector. Ang pagbabalik ng lahat ng mga elemento ay hindi kinakailangan. Kaya, upang ibalik lamang ang mga partikular na elemento batay sa index, ang index operator at at() function ay ginagamit.

Syntax:

vector [ index_position ]

Sa C++, ang pag-index ay nagsisimula sa 0 para sa anumang istraktura ng data. Kung wala ang elemento, babalik itong walang laman (Walang error o babala ang itinaas).

Isaalang-alang ang vector ng 'mga produkto' na may limang item. I-access ang lahat ng mga elemento nang paisa-isa gamit ang posisyon ng index.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga produkto na may 5 string

vector < string > mga produkto { 'sabon' , 'shampoo' , 'langis' , 'prutas' , 'gulay' } ;

//Pag-access sa mga elemento mula sa mga produkto

cout << 'Unang Elemento:' << mga produkto [ 0 ] << endl ;

cout << 'Ikalawang Elemento:' << mga produkto [ 1 ] << endl ;

cout << 'Ikatlong Elemento:' << mga produkto [ 2 ] << endl ;

cout << 'Ika-apat na Elemento:' << mga produkto [ 3 ] << endl ;

cout << 'Ikalimang Elemento:' << mga produkto [ 4 ] << endl ;



// Subukang i-access ang ika-9 na elemento

cout << 'Ikasiyam na Elemento:' << mga produkto [ 8 ] << endl ;

}

Output:

Walang elementong naroroon sa index 8. Kaya, ibinalik ang walang laman.

2. Gamit ang At() Function

Ang At() ay isang function ng miyembro na katulad ng nakaraang use case ngunit ibinabalik nito ang 'std::out_of_range' exception kapag ang index na wala sa saklaw ay ibinigay dito.

Syntax:

vector. sa ( index_position )

Kailangan nating ipasa ang posisyon ng index sa function na ito.

Isaalang-alang ang vector ng 'mga produkto' na may limang item. I-access ang lahat ng mga elemento nang paisa-isa gamit ang posisyon ng index at subukang i-access ang elemento na naroroon sa ika-9 na posisyon.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga produkto na may 5 string

vector < string > mga produkto { 'sabon' , 'shampoo' , 'langis' , 'prutas' , 'gulay' } ;

//Pag-access sa mga elemento mula sa mga produkto

cout << 'Unang Elemento:' << mga produkto. sa ( 0 ) << endl ;

cout << 'Ikalawang Elemento:' << mga produkto. sa ( 1 ) << endl ;

cout << 'Ikatlong Elemento:' << mga produkto. sa ( 2 ) << endl ;

cout << 'Ika-apat na Elemento:' << mga produkto. sa ( 3 ) << endl ;

cout << 'Ikalimang Elemento:' << mga produkto. sa ( 4 ) << endl ;



//Pag-access sa mga elemento na wala sa vector

cout << 'Ikasiyam na Elemento:' << mga produkto. sa ( 8 ) << endl ;

}

Output:

Nagkaroon ng error para sa pag-access sa ika-9 na elemento:

terminate na tinawag pagkatapos ihagis ang isang instance ng 'std::out_of_range'

Ano ( ) : vector :: _M_range_check : __n ( which is 8 ) >= ito - > laki ( ) ( which is 5 )

I-update ang isang Elemento sa isang Vector

1. Gamit ang [] Operator

Gamit ang posisyon ng index, maaari naming i-update ang elemento sa vector. Kinukuha ng operator ng [] ang posisyon ng index ng elemento na kailangang i-update. Ang bagong elemento ay itatalaga sa operator na ito.

Syntax:

Vector [ index_position ] = Elemento

Isaalang-alang ang vector na 'student_marks' na may limang value. I-update ang mga elementong naroroon sa mga indeks 1 at 3.

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - student_marks

vector < int > mga_marka ng mag-aaral { 98 , 78 , 90 , 67 , 89 } ;

cout << 'Mga umiiral na marka:' << endl ;

para sa ( int itr : mga_marka ng mag-aaral )

cout << itr << endl ;

// I-update ang elemento sa index-3 na may 100

mga_marka ng mag-aaral [ 3 ] = 100 ;

// I-update ang elemento sa index-1 na may 60

mga_marka ng mag-aaral [ 1 ] = 60 ;

cout << 'Mga huling marka:' << endl ;

para sa ( int itr : mga_marka ng mag-aaral )

cout << itr << endl ;

}

Output:

Makikita natin na ang panghuling vector ang may hawak ng mga elemento ng pag-update sa mga indeks 1 at 3.

2. Gamit ang At() Function

Katulad ng index operator, at() ay karaniwang isang function ng miyembro na nag-a-update ng halaga batay sa index sa isang iterator. Kung ang index na tinukoy sa loob ng function na ito ay hindi umiiral, ang 'std::out_of_range' exception ay itatapon.

vector. sa ( index_position ) = Elemento

Isaalang-alang ang vector ng 'mga produkto' na may limang item. I-update ang lahat ng mga elemento na naroroon sa vector kasama ng iba pang mga elemento.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga produkto na may 5 string

vector < string > mga produkto { 'sabon' , 'shampoo' , 'langis' , 'prutas' , 'gulay' } ;

cout << 'Mga Umiiral na Produkto:' << endl ;

para sa ( string itr : mga produkto )

cout << itr << endl ;

// Ina-update ang lahat ng mga string

mga produkto. sa ( 0 ) = 'Cake' ;

mga produkto. sa ( 1 ) = 'Tsokolate' ;

mga produkto. sa ( 2 ) = 'Prutas' ;

mga produkto. sa ( 3 ) = 'Sibuyas' ;

mga produkto. sa ( 4 ) = 'Soft-drinks' ;



cout << ' \n Mga Panghuling Produkto: ' << endl ;

para sa ( string itr : mga produkto )

cout << itr << endl ;

}

Output:

Alisin ang isang Partikular na Elemento mula sa isang Vector

Sa C++, ang std::vector::erase() Ang function ay ginagamit upang alisin ang isang partikular na elemento/saklaw ng mga elemento mula sa isang vector. Ang mga elemento ay tinanggal batay sa mga posisyon ng iterator.

Syntax:

vector. burahin ( posisyon ng iterator )

Tingnan natin ang syntax para sa pag-alis ng partikular na elemento mula sa isang vector. Maaari naming gamitin ang begin() o end() function para makuha ang posisyon ng elementong naroroon sa vector na aalisin.

Isaalang-alang ang vector ng 'mga produkto' na may limang item.

  1. Alisin ang ikatlong elemento sa pamamagitan ng pagtukoy sa begin() iterator. Ang Begin() ay tumuturo sa unang elemento sa vector. Kung magdadagdag tayo ng dalawa sa function na ito, itinuturo nito ang ikatlong elemento.
  2. Alisin ang huling elemento sa pamamagitan ng pagtukoy sa end() iterator. End() ay tumuturo sa huling elemento sa vector.
#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga produkto na may 5 string

vector < string > mga produkto { 'sabon' , 'shampoo' , 'langis' , 'prutas' , 'gulay' } ;

cout << 'Mga Umiiral na Produkto:' << endl ;

para sa ( string itr : mga produkto )

cout << itr << endl ;



// Alisin ang ika-3 elemento

mga produkto. burahin ( mga produkto. magsimula ( ) + 2 ) ;

cout << ' \n Pagkatapos alisin ang 3rd element: \n ' ;

para sa ( string itr : mga produkto )

cout << itr << endl ;

// Alisin ang huling elemento

mga produkto. burahin ( mga produkto. wakas ( ) ) ;

cout << ' \n Pagkatapos alisin ang huling elemento: \n ' ;

para sa ( string itr : mga produkto )

cout << itr << endl ;

}

Output:

Ngayon, mayroon lamang tatlong elemento ('soap', 'shampoo', 'prutas') na umiiral sa vector ng 'mga produkto'.

Alisin ang Lahat ng Elemento mula sa isang Vector

Sitwasyon 1: Mag-alis ng Saklaw ng mga Elemento mula sa isang Vector

Gamitin natin ang std::vector::erase() function para alisin ang maraming elemento sa isang range.

Syntax:

vector. burahin ( iterator muna, iterator huli )

Ang dalawang iterator (begin() ay tumuturo sa unang elemento at end() na tumuturo sa mga huling function ng elemento) ay ginagamit upang tukuyin ang saklaw.

Isaalang-alang ang vector ng 'mga produkto' na may limang mga item at alisin ang lahat ng mga elemento mula sa pangalawang posisyon. Upang makamit ito, ang unang iterator ay magsisimula (mga produkto)+1 na tumuturo sa pangalawang elemento at ang pangalawang iterator ay wakas (mga produkto).

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga produkto na may 5 string

vector < string > mga produkto { 'sabon' , 'shampoo' , 'langis' , 'prutas' , 'gulay' } ;

cout << 'Mga Umiiral na Produkto:' << endl ;

para sa ( string itr : mga produkto )

cout << itr << endl ;



// Alisin ang lahat ng elemento mula sa pangalawang posisyon

mga produkto. burahin ( magsimula ( mga produkto ) + 1 ,tapos ( mga produkto ) ) ;

cout << ' \n Mga Panghuling Produkto: \n ' ;

para sa ( string itr : mga produkto )

cout << itr << endl ;

}

Output:

Ngayon, mayroon lamang isang elemento ('sabon') na nasa vector ng 'mga produkto'.

Scenario 2: Alisin ang Lahat ng Elemento mula sa Vector

Gamitin natin ang std::vector::clear() function na alisin ang lahat ng mga elemento mula sa vector.

Syntax:

vector. malinaw ( )

Walang mga parameter na ipinapasa sa function na ito.

Isaalang-alang ang parehong vector na ginamit sa unang senaryo at alisin ang lahat ng mga elemento gamit ang clear() function.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga produkto na may 5 string

vector < string > mga produkto { 'sabon' , 'shampoo' , 'langis' , 'prutas' , 'gulay' } ;

cout << 'Mga Umiiral na Produkto:' << endl ;

para sa ( string itr : mga produkto )

cout << itr << endl ;



// Alisin ang lahat ng elemento mula sa mga produkto

mga produkto. malinaw ( ) ;

cout << ' \n Mga Panghuling Produkto: \n ' ;

para sa ( string itr : mga produkto )

cout << itr << endl ;

}

Output:

Makikita natin na walang mga elemento sa vector ng 'mga produkto'.

Unyon ng mga Vector

Posibleng gawin ang operasyon ng UNION sa mga vector gamit ang std::set_union() function. Ibinabalik ng Union ang mga natatanging elemento mula sa mga vector sa pamamagitan ng hindi pagpansin sa mga dobleng elemento. Kailangan nating ipasa ang parehong mga iterator sa function na ito. Kasama nito, kailangang maipasa ang isang output iterator na nag-iimbak ng resulta na ibinalik ng parehong mga iterator.

Syntax:

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

dito:

  1. Ang 'first1' ay tumuturo sa unang elemento ng unang iterator (vector).
  2. Ang 'last1' ay tumuturo sa huling elemento ng unang iterator (vector).
  3. Ang 'first2' ay tumuturo sa unang elemento ng pangalawang iterator (vector).
  4. Ang 'last2' ay tumuturo sa huling elemento ng pangalawang iterator (vector).

Lumikha ng dalawang vectors - 'mga paksa1' at 'mga paksa2' - ng uri ng integer.

  1. Pagbukud-bukurin ang dalawang vector gamit ang sort() function sa pamamagitan ng pagpasa sa mga iterator.
  2. Lumikha ng isang output vector (iterator).
  3. Hanapin ang unyon ng dalawang vector na ito gamit ang std::set_union() function. Gamitin ang begin() bilang unang iterator at end() bilang huling iterator.
  4. Ulitin ang output vector upang ipakita ang mga elemento na ibinalik ng function.
#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga marka1

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



// Lumikha ng vector - mga marka2

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

// Pagbukud-bukurin ang parehong mga vector

uri ( marka1. magsimula ( ) , marka1. wakas ( ) ) ;

uri ( marka2. magsimula ( ) , marka2. wakas ( ) ) ;

vector < int > outputVector ( marka1. laki ( ) + marka2. laki ( ) ) ;

vector < int > :: umuulit ako, s ;

i = set_union ( marka1. magsimula ( ) , marka1. wakas ( ) ,

marka2. magsimula ( ) ,marka2. wakas ( ) ,

outputVector. magsimula ( ) ) ;

cout << ' \n marks1 U marks2: \n ' ;

para sa ( s = outputVector. magsimula ( ) ; s ! = i ; ++ s )

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

}

Output:

Mayroon lamang limang natatanging elemento sa parehong mga vector (mga paksa1 at paksa2).

Intersection ng mga Vector

Ang paghahanap ng intersection ng dalawang vector ay maaaring maging posible gamit ang std::set_intersection() function. Ibinabalik ng intersection ang mga elemento na naroroon sa parehong mga vector.

Syntax:

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

Ang mga parameter na ipapasa sa set_union() function ay maaaring ipasa din sa set_intersection() function na ito.

Lumikha ng dalawang vectors - 'mga paksa1' at 'mga paksa2' - ng uri ng integer.

  1. Pagbukud-bukurin ang dalawang vector gamit ang sort() function sa pamamagitan ng pagpasa sa mga iterator.
  2. Lumikha ng isang output vector (iterator).
  3. Hanapin ang intersection ng dalawang vector na ito gamit ang std::set_intersection() function. Gamitin ang begin() bilang unang iterator at end() bilang huling iterator.
  4. Ulitin ang output vector upang ipakita ang mga elemento na ibinalik ng function.
#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga marka1

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



// Lumikha ng vector - mga marka2

vector < int > marka2 = { limampu , 90 , 60 , 10 , 100 } ;

// Pagbukud-bukurin ang parehong mga vector

uri ( marka1. magsimula ( ) , marka1. wakas ( ) ) ;

uri ( marka2. magsimula ( ) , marka2. wakas ( ) ) ;

vector < int > outputVector ( marka1. laki ( ) + marka2. laki ( ) ) ;

vector < int > :: umuulit ako, s ;

i = set_intersection ( marka1. magsimula ( ) , marka1. wakas ( ) ,

marka2. magsimula ( ) ,marka2. wakas ( ) ,

outputVector. magsimula ( ) ) ;

cout << ' \n marka1 ∩ marka2: \n ' ;

para sa ( s = outputVector. magsimula ( ) ; s ! = i ; ++ s )

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

}

Output:

Mayroon lamang tatlong elemento na naroroon sa parehong mga vector (mga paksa1 at paksa2).

Suriin Kung Walang laman ang Vector o Hindi

Bago magtrabaho sa mga vector, mahalagang suriin kung ang vector ay walang laman o hindi. Ito rin ay isang mahusay na kasanayan sa mga proyekto ng software upang suriin kung ang vector ay walang laman o wala bago gawin ang mga operasyon tulad ng mga operasyon ng CRUD, atbp.

1. Gamit ang Std::vector::empty()

Ang function na ito ay nagbabalik ng 1 kung ang vector ay walang laman (hindi naglalaman ng anumang elemento). Kung hindi, 0 ang ibinalik. Walang parameter na ipinapasa sa function na ito.

2. Gamit ang Std::vector::size()

Ang std::vector::size() function ay nagbabalik ng integer na kumakatawan sa kabuuang bilang ng mga elemento na nasa vector.

Lumikha ng dalawang vectors – “college1” at “college2”. Ang 'College1' ay mayroong limang elemento at ang 'college2' ay walang laman. Ilapat ang parehong mga function sa parehong mga vector at suriin ang output.

#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - kolehiyo1

vector < string > kolehiyo1 = { 'kolehiyo-A' , 'kolehiyo-B' , 'kolehiyo-C' , 'kolehiyo-D' , 'kolehiyo-E' } ;

// Lumikha ng vector - kolehiyo2

vector < string > kolehiyo2 ;

// walang laman()

cout << kolehiyo1. walang laman ( ) << endl ;

cout << kolehiyo2. walang laman ( ) << endl ;

// laki()

cout << kolehiyo1. laki ( ) << endl ;

cout << kolehiyo2. laki ( ) << endl ;

}

Output:

Ang empty() function ay nagbabalik ng 0 para sa “college1” at 1 para sa “college2”. Ang size() function ay nagbabalik ng lima para sa “college1” at 0 para sa “college2”.

Traverse a Vector Gamit ang Const_Iterator

Kapag nagtatrabaho ka sa mga C++ na lalagyan tulad ng mga set, vector, atbp., posibleng umulit sa lahat ng elementong nasa container nang hindi binabago ang mga ito. Ang const_iterator ay isa sa mga iterator na nakakamit ang sitwasyong ito. Ang cbegin() (tumuturo sa unang elemento sa vector) at cend() (tumuturo sa huling elemento sa vector) ay ang dalawang function na ibinibigay ng bawat lalagyan na ginagamit upang ibalik ang constant iterator sa simula at dulo ng ang lalagyan. Habang inuulit ang vector, magagamit natin ang dalawang function na ito.

  1. Gumawa tayo ng vector na pinangalanang 'mga departamento' na may limang string.
  2. Magdeklara ng const_iterator – ctr ng uri .
  3. Ulitin ang mga departamento gamit ang nakaraang iterator gamit ang 'para sa' loop at ipakita ito.
#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga departamento

vector < string > mga kagawaran = { 'Benta' , 'Serbisyo' ,

'HR' , 'IT' , 'Iba pa' } ;



vector < string > :: const_iterator ctr ;

// Ulitin ang mga departamento gamit ang const_iterator - ctr.

para sa ( ctr = mga kagawaran. cbegin ( ) ; ctr ! = mga kagawaran. kunti lang ( ) ; ctr ++ ) {

cout << * ctr << endl ;

}

}

Output:

Traverse a Vector Gamit ang Reverse_Iterator

Ang reverse_iterator ay isa ring iterator na katulad ng const_iterator ngunit ibinabalik nito ang mga elemento sa kabaligtaran. Ang rbegin() (tumuturo sa huling elemento sa vector) at rend() (tumuturo sa unang elemento sa vector) ay ang dalawang function na ibinibigay ng bawat lalagyan na ginagamit upang ibalik ang pare-parehong iterator sa pagtatapos at simula ng ang lalagyan.

  1. Gumawa tayo ng vector na pinangalanang 'mga departamento' na may limang string.
  2. Magdeklara ng reverse_iterator – rtr ng uri .
  3. Ulitin ang mga departamento gamit ang nakaraang iterator gamit ang 'para sa' loop at ipakita ito.
#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga departamento

vector < string > mga kagawaran = { 'Benta' , 'Serbisyo' ,

'HR' , 'IT' , 'Iba pa' } ;



vector < string > :: reverse_iterator rtr ;

// Ulitin ang mga departamento gamit ang reverse_iterator - rtr.

para sa ( rtr = mga kagawaran. simulan na ( ) ; rtr ! = mga kagawaran. gumagawa ( ) ; rtr ++ ) {

cout << * rtr << endl ;

}

}

Output:

Itulak ang Mga Elemento sa Vector

Ang pagtulak o pagdaragdag ng mga elemento sa isang vector ay isang one-way na pagpapasok na maaaring gawin gamit ang vector::push_back() function.

Syntax:

vector. push_back ( elemento )

Kinakailangan ang isang elemento upang itulak sa vector bilang isang parameter.

Gumawa tayo ng isang walang laman na vector na pinangalanang 'mga departamento' na may limang mga string at itulak ang dalawang mga string nang sunud-sunod gamit ang push_back() function.

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Magsimula ng vector - mga departamento

vector < string > mga kagawaran ;

cout << 'Mga Aktwal na Departamento:' << endl ;

para sa ( sasakyan itr = mga kagawaran. magsimula ( ) ; itr ! = mga kagawaran. wakas ( ) ; ++ itr )

cout << * itr << endl ;

// Itulak ang 'Sales'

mga kagawaran. push_back ( 'Benta' ) ;

// Itulak ito'

mga kagawaran. push_back ( 'IT' ) ;

cout << ' \n Mga Panghuling Departamento:' << endl ;

para sa ( sasakyan itr = mga kagawaran. magsimula ( ) ; itr ! = mga kagawaran. wakas ( ) ; ++ itr )

cout << * itr << endl ;

}

Output:

Una, itinutulak namin ang 'Sales'. Pagkatapos nito, ang 'IT' ay itinulak sa vector. Ngayon, ang vector ng 'mga departamento' ay mayroong dalawang elemento.

I-pop ang Mga Elemento mula sa Vector

Kung gusto mong tanggalin ang huling item na naroroon sa vector, gamit ang vector::pop_back() function ay ang pinakamahusay na diskarte. Tinatanggal nito ang huling elemento na naroroon sa vector.

Syntax:

vector. pop_back ( )

Walang kinakailangang parameter para sa function na ito. Ipinapakita nito ang hindi natukoy na gawi kung susubukan naming tanggalin ang huling elemento mula sa isang walang laman na vector.

Gumawa tayo ng isang walang laman na vector na pinangalanang 'mga departamento' na may limang mga string at tanggalin ang huling elemento gamit ang nakaraang function. Ipakita ang vector sa parehong mga kaso.

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Magsimula ng vector - mga departamento

vector < string > mga kagawaran = { 'Benta' , 'IT' , 'Serbisyo' , 'Marketing' , 'HR' } ;

cout << 'Mga Aktwal na Departamento:' << endl ;

para sa ( sasakyan itr = mga kagawaran. magsimula ( ) ; itr ! = mga kagawaran. wakas ( ) ; ++ itr )

cout << * itr << endl ;



// Tanggalin ang huling elemento

mga kagawaran. pop_back ( ) ;

cout << ' \n Mga Panghuling Departamento:' << endl ;

para sa ( sasakyan itr = mga kagawaran. magsimula ( ) ; itr ! = mga kagawaran. wakas ( ) ; ++ itr )

cout << * itr << endl ;

}

Output:

Ang 'HR' ay ang huling elemento na nasa vector ng 'mga departamento.' Kaya, ito ay tinanggal mula sa vector at ang huling vector ay may hawak na 'Sales', 'IT', 'Serbisyo', at 'Marketing'.

Palitan ang mga Vector

Ang vector::swap() Ang function sa C++ STL ay ginagamit upang palitan ang lahat ng mga elemento na naroroon sa dalawang vectors.

Syntax:

first_vector. magpalit ( pangalawang_vector )

Hindi nito isinasaalang-alang ang laki ng mga vector ngunit ang mga vector ay dapat na pareho ang uri (ang error ay itinapon kung ang mga uri ng vector ay iba).

Gumawa tayo ng dalawang vectors - 'prutas' at 'gulay' - ng uri ng string na may iba't ibang laki. Pagpalitin ang bawat isa sa kanila at ipakita ang mga vector sa parehong mga kaso.

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Magsimula ng vector - mga prutas

vector < string > mga prutas = { 'mansanas' , 'mangga' } ;

cout << 'Actual Fruits:' << endl ;

para sa ( sasakyan itr = mga prutas. magsimula ( ) ; itr ! = mga prutas. wakas ( ) ; ++ itr )

cout << * itr << endl ;



// Magsimula ng vector - mga gulay

vector < string > mga gulay = { 'Patatas' , 'Kamatis' , 'Brinjal' } ;

cout << ' \n Mga Tunay na Gulay:' << endl ;

para sa ( sasakyan itr = mga gulay. magsimula ( ) ; itr ! = mga gulay. wakas ( ) ; ++ itr )

cout << * itr << endl ;



// Pagpalitin ang mga elemento sa parehong mga vector

mga prutas. magpalit ( mga gulay ) ;

cout << ' \n Mga prutas pagkatapos magpalit:' << endl ;

para sa ( sasakyan itr = mga prutas. magsimula ( ) ; itr ! = mga prutas. wakas ( ) ; ++ itr )

cout << * itr << endl ;

cout << ' \n Mga gulay pagkatapos magpalit:' << endl ;

para sa ( sasakyan itr = mga gulay. magsimula ( ) ; itr ! = mga gulay. wakas ( ) ; ++ itr )

cout << * itr << endl ;

}

Output:

Dati, ang vector ng 'prutas' ay mayroong dalawang elemento at ang 'gulay' na vector ay mayroong tatlong elemento. Pagkatapos magpalit, ang vector ng 'prutas' ay mayroong tatlong elemento at ang 'gulay' na vector ay mayroong dalawang elemento.

Kunin ang Unang Elemento mula sa Vector

Sa ilang mga kaso, ang kinakailangan ay ibalik lamang ang unang elemento mula sa vector. Kinukuha lang ng vector::front() function sa C++ STL ang unang elemento mula sa vector.

Syntax:

vector. harap ( )

Ang function na ito ay hindi kukuha ng anumang parameter. Kung ang vector ay walang laman, ang isang error ay itinapon.

Gumawa tayo ng dalawang vectors - 'prutas' at 'gulay' - ng uri ng string at subukang kunin ang unang elemento nang hiwalay sa dalawang vector.

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga prutas na may 2 elemento

vector < string > mga prutas = { 'mansanas' , 'mangga' } ;

// Ibalik ang unang elemento

cout << mga prutas. harap ( ) << endl ;



// Magsimula ng vector - mga gulay

vector < string > mga gulay ;

// Subukang ibalik ang unang elemento

cout << mga gulay. harap ( ) ;

}

Output:

Ang 'Apple' ay ang unang elemento na naroroon sa vector ng 'prutas'. Kaya, ito ay ibinalik. Ngunit ang isang error ay itinapon kapag sinubukan naming kunin ang unang elemento mula sa vector na 'gulay' dahil ito ay walang laman.

Kunin ang Huling Elemento mula sa Vector

Ang vector::end() function sa C++ STL ay kumukuha lamang ng huling elemento mula sa vector.

Syntax:

vector. pabalik ( )

Ang function na ito ay hindi kukuha ng anumang parameter. Kung ang vector ay walang laman, ang isang error ay itinapon.

Gumawa tayo ng dalawang vectors - 'prutas' at 'gulay' - ng uri ng string at subukang kunin ang huling elemento nang hiwalay sa dalawang vector.

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga prutas na may 2 elemento

vector < string > mga prutas = { 'mansanas' , 'mangga' } ;

// Kunin ang huling elemento

cout << mga prutas. pabalik ( ) << endl ;



// Magsimula ng vector - mga gulay

vector < string > mga gulay ;

// Subukang kunin ang huling elemento

cout << mga gulay. pabalik ( ) ;

}

Output:

Ang 'Mango' ay ang huling elemento na naroroon sa vector ng 'prutas'. Kaya, ito ay ibinalik. Ngunit ang isang error ay itinapon kapag sinubukan naming kunin ang huling elemento mula sa vector na 'gulay' dahil ito ay walang laman.

Magtalaga ng mga Bagong Value sa isang Vector

Sa ilang mga sitwasyon, kung gusto mong i-update ang lahat ng value gamit ang bagong value o lumikha ng vector na may parehong value, gamit ang vector::assign() function ay ang pinakamahusay na diskarte. Gamit ang function na ito, maaari nating:

  1. Lumikha ng vector kasama ang lahat ng magkakatulad na elemento
  2. Baguhin ang umiiral na vector na may parehong elemento

Syntax:

vector. italaga ( laki, halaga )

Dalawang parameter ang kinakailangan sa function na ito.

dito:

  1. Tinutukoy ng laki ang bilang ng mga elementong itatalaga.
  2. Tinutukoy ng value ang elementong itatalaga.

Gumawa tayo ng vector na pinangalanang 'marks1' na may limang value at i-update ang vector na ito na may apat na elemento upang ang lahat ng elemento sa na-update na vector ay katumbas ng 20.

#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga marka1

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

cout << 'Actual Vector:' << endl ;

para sa ( int i = 0 ; i < marka1. laki ( ) ; i ++ )

cout << marka1 [ i ] << endl ;



marka1. italaga ( 4 , dalawampu ) ;



cout << ' \n Na-update na Vector:' << endl ;

para sa ( int i = 0 ; i < marka1. laki ( ) ; i ++ )

cout << marka1 [ i ] << endl ;

}

Output:

Noong nakaraan, ang vector ay mayroong limang magkakaibang elemento. Ngayon, mayroon lamang itong apat na elemento at lahat ay katumbas ng 20.

Palawakin ang Vector Gamit ang Emplace()

Alam na natin na ang mga bagong elemento ay dynamic na ipinapasok sa anumang posisyon sa isang vector. Ito ay posible gamit ang vector::emplace() function. Mabilis nating tingnan ang syntax at mga parameter na tinatanggap ng function na ito.

Syntax:

vector. lokasyon ( const_iterator na posisyon, elemento )

Dalawang mandatoryong parameter ang ipinapasa sa function na ito.

dito:

  1. Kinukuha ng unang parameter ang posisyon upang maipasok namin ang elemento sa anumang posisyon. Makukuha natin ang posisyon gamit ang begin() o end() iterator function.
  2. Ang pangalawang parameter ay ang elementong ilalagay sa vector.

Isaalang-alang ang vector ng 'mga kemikal' na may dalawang elemento.

  1. Ipasok ang 'Manganese' sa unang posisyon - magsimula (mga kemikal)
  2. Ipasok ang 'Copper' sa huling posisyon - dulo (mga kemikal)
  3. Ipasok ang 'Sulphur' sa ikatlong posisyon - magsimula(mga kemikal)+2
#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga kemikal

vector < string > mga kemikal = { 'Oxygen' , 'CO' } ;

cout << 'Mga Aktwal na Kemikal:' << endl ;

para sa ( int i = 0 ; i < mga kemikal. laki ( ) ; i ++ )

cout << mga kemikal [ i ] << endl ;



// Ipasok ang elemento sa unang posisyon

mga kemikal. lokasyon ( magsimula ( mga kemikal ) , 'Manganese' ) ;



// Ipasok ang elemento sa huling posisyon

mga kemikal. lokasyon ( wakas ( mga kemikal ) , 'Tanso' ) ;



// Ipasok ang elemento sa ikatlong posisyon

mga kemikal. lokasyon ( magsimula ( mga kemikal ) + 2 , 'Sulphur' ) ;



cout << ' \n Panghuling Kemikal:' << endl ;

para sa ( int i = 0 ; i < mga kemikal. laki ( ) ; i ++ )

cout << mga kemikal [ i ] << endl ;

}

Output:

Ngayon, ang huling vector ay mayroong limang elemento (ibinigay sa sumusunod na screenshot).

Palawakin ang Vector Gamit ang Emplace_Back()

Maaaring idagdag ang isang elemento (pagdaragdag sa dulo ng vector) na maaaring gawin gamit ang vector::emplace_back() function.

Syntax:

vector. emplace_back ( elemento )

Ito ay ipinag-uutos na ipasa ang elemento na idaragdag sa vector bilang isang parameter.

Magdagdag tayo ng dalawang elemento nang sunud-sunod gamit ang emplace_back() function.

#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga kemikal

vector < string > mga kemikal = { 'Oxygen' , 'CO' } ;

cout << 'Mga Aktwal na Kemikal:' << endl ;

para sa ( int i = 0 ; i < mga kemikal. laki ( ) ; i ++ )

cout << mga kemikal [ i ] << endl ;



// Ipasok ang Manganese sa dulo ng vector

mga kemikal. emplace_back ( 'Manganese' ) ;



// Ipasok ang Manganese sa dulo ng vector

mga kemikal. emplace_back ( 'Tanso' ) ;





cout << ' \n Panghuling Kemikal:' << endl ;

para sa ( int i = 0 ; i < mga kemikal. laki ( ) ; i ++ )

cout << mga kemikal [ i ] << endl ;

}

Output:

Ngayon, ang huling vector ay mayroong apat na elemento pagkatapos idagdag ang 'Manganese' at 'Copper'.

Pinakamataas na Elemento ng isang Vector

  1. Lumikha ng isang vector na may ilang mga elemento.
  2. Upang mahanap ang maximum na elemento na nasa vector, gamitin ang *max_element() function na tumatanggap ng dalawang iterator bilang mga argumento. Ang dalawang parameter na ito ay nagsisilbing hanay at ang maximum na elemento ay ibinalik sa loob ng ibinigay na hanay. Ang panimulang posisyon ay begin() at ang huling posisyon ay end().
* max_element ( first_Index, last_Index )

Isaalang-alang natin ang isang vector na pinangalanang 'item_costs' na nagtataglay ng limang halaga ng uri ng integer at ibabalik ang maximum na elemento.

#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - item_costs

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



cout << 'Halaga ng mga Item: \n ' ;

para sa ( int i = 0 ; i < item_costs. laki ( ) ; i ++ )

cout << item_costs [ i ] << endl ;



// Ibalik ang maximum na elemento mula sa itaas na vector - item_costs

cout << ' \n Pinakamataas na Gastos: ' << * max_element ( magsimula ( item_costs ) ,tapos ( item_costs ) ) ;

}

Output:

Dito, ang 8900 ay ang pinakamataas na elemento sa lahat ng mga elemento na naroroon sa vector ng 'item_costs'.

Pinakamababang Elemento ng isang Vector

  1. Lumikha ng isang vector na may ilang mga elemento.
  2. Upang mahanap ang pinakamababang elemento na naroroon sa vector, gamitin ang *min_element() function na tumatanggap ng dalawang iterator bilang mga argumento. Ang dalawang parameter na ito ay nagsisilbing hanay at ang pinakamababang elemento (mas mababa sa lahat ng iba pang elemento) ay ibinalik sa loob ng ibinigay na hanay. Ang panimulang posisyon ay begin() at ang huling posisyon ay end().
* min_elemento ( first_Index, last_Index )

Gamitin ang parehong vector na nilikha upang mahanap ang maximum na elemento at hanapin ang minimum na elemento gamit ang *min_element() function.

#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - item_costs

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



cout << 'Halaga ng mga Item: \n ' ;

para sa ( int i = 0 ; i < item_costs. laki ( ) ; i ++ )

cout << item_costs [ i ] << endl ;



// Ibalik ang minimum na elemento mula sa itaas na vector - item_costs

cout << ' \n Minimum na Gastos: ' << * min_elemento ( magsimula ( item_costs ) ,tapos ( item_costs ) ) ;

}

Output:

Dito, ang 200 ay ang pinakamababang elemento sa lahat ng mga elemento na naroroon sa vector ng 'item_costs'.

Kabuuan ng mga Elemento sa isang Vector

Upang ibalik ang kabuuan ng lahat ng mga elemento na naroroon sa vector, ang mag-ipon() Ang function sa C++ STL ay ginagamit. Tumatanggap ito ng tatlong mga parameter. Kinukuha ng unang parameter ang unang index na kumakatawan sa panimulang elemento sa hanay (tukuyin ang begin() iterator) at ang pangalawang parameter ay kumukuha ng huling index na kumakatawan sa panghuling elemento sa hanay (tukuyin ang end() iterator) . Panghuli, kailangan nating ipasa ang paunang halaga ng kabuuan (sa aming kaso, ito ay 0).

makaipon ( first_index, last_index, initial_val ) ;

Gumawa ng vector na pinangalanang 'item_costs' na may limang elemento ng uri ng integer at kalkulahin ang kabuuan.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - item_costs

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



cout << 'Halaga ng mga Item: \n ' ;

para sa ( int i = 0 ; i < item_costs. laki ( ) ; i ++ )

cout << item_costs [ i ] << endl ;



// Ibalik ang kabuuan ng lahat ng elemento sa vector sa itaas - item_costs

cout << ' \n Kabuuang Gastos: ' << makaipon ( magsimula ( item_costs ) ,tapos ( item_costs ) , 0 ) ;

}

Output:

Ang kabuuan ng 8900, 5677, 200, 1000, 2300 ay 18077.

Element-Wise Multiplication ng Dalawang Vector

  1. Gumawa ng dalawang vector na may uri ng numeric at dalawang vector ay dapat magkapareho ang laki (kabuuang bilang ng mga elementong nasa unang vector = kabuuang bilang ng mga elementong nasa pangalawang vector).
  2. Magdeklara ng bagong vector at gamitin ang para sa loop , isagawa ang multiplication operation sa dalawang elemento sa bawat pag-ulit, at iimbak ang halaga sa nilikhang vector gamit ang push_back() function.
  3. para sa ( int itr = 0 ; i < first_vec. laki ( ) ; itr ++ )

    {

    resulta_vector. push_back ( first_vec [ itr ] * sec_thing [ itr ] ) ;

    }
  4. Ipakita ang mga elemento na naroroon sa resultang vector sa pamamagitan ng pag-ulit nito.

Gumawa ng vector na pinangalanang 'item_costs' na may limang elemento ng uri ng integer at kalkulahin ang kabuuan.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng dalawang vector - products1 at products2 na may 5 elemento bawat isa

vector < int > mga produkto1 = { 10 , dalawampu , 30 , 40 , limampu } ;

vector < int > mga produkto2 = { limampu , 40 , 30 , 70 , 60 } ;



vector < int > resulta_produkto ;



// Magsagawa ng element wise multiplication

para sa ( int i = 0 ; i < mga produkto1. laki ( ) ; i ++ ) {

resulta_produkto. push_back ( mga produkto1 [ i ] * mga produkto2 [ i ] ) ;

}



// Ipakita ang resultang vector

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

para sa ( int res : resulta_produkto )

cout << res << endl ;

}

Output:

Pag-ulit - 1 : 10 * limampu => 500

Pag-ulit - 2 : dalawampu * 40 => 800

Pag-ulit - 3 : 30 * 30 => 900

Pag-ulit - 4 : 40 * 70 => 2800

Pag-ulit - 5 : limampu * 60 => 3000

Dot Product ng Dalawang Vector

Sa kaso ng mga C++ vectors, ang tuldok na produkto ay tinukoy bilang 'kabuuan ng mga produkto ng kaukulang mga entry ng dalawang sequence ng mga vectors'.

Syntax:

panloob_produkto ( Vector1 una, Vector1 huli, Vector2 una, Initial_Val )

Gamitin ang inner_product() function para ibalik ang dot product. Ang function na ito ay tumatagal ng apat na kinakailangang parameter.

dito:

  1. Ang unang parameter ay tumutukoy sa isang iterator na tumuturo sa simula ng unang vector (tukuyin gamit ang begin() function).
  2. Ang pangalawang parameter ay tumutukoy sa isang iterator na tumuturo sa pagtatapos ng unang vector (tukuyin gamit ang end() function).
  3. Ang ikatlong parameter ay tumutukoy sa isang iterator na tumuturo sa simula ng pangalawang vector (tukuyin gamit ang begin() function).
  4. Ang paunang halaga ay kailangang maipasa bilang huling parameter na isang integer para sa akumulasyon ng produkto ng tuldok.

Gamitin ang parehong program na nilikha para sa pagpaparami ng dalawang vector at gamitin ang innsr_product() function upang mahanap ang tuldok na produkto ng dalawang vector.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng dalawang vector - products1 at products2 na may 5 elemento bawat isa

vector < int > mga produkto1 = { 10 , dalawampu , 30 , 40 , limampu } ;

vector < int > mga produkto2 = { limampu , 40 , 30 , 70 , 60 } ;



// Ipakita ang resultang vector

cout << 'Dot Product ng products1 at products2: ' ;

cout << panloob_produkto ( magsimula ( mga produkto1 ) ,tapos ( mga produkto1 ) ,simulan ( mga produkto2 ) , 0 ) ;

}

Output:

( 10 * limampu ) + ( dalawampu * 40 ) + ( 30 * 30 ) + ( 40 * 70 ) + ( limampu * 60 )

=> 500 + 800 + 900 + 2800 + 3000

=> 8000

I-convert ang isang Set sa isang Vector

Mayroong maraming mga paraan upang i-convert ang isang set sa isang vector sa pamamagitan ng pagpasa sa lahat ng mga elemento na nakataas sa isang set sa isang vector. Ang pinakamahusay at pinakasimpleng paraan ay ang paggamit ng std::copy() function.

Syntax

std :: kopya ( sourceIterator muna, sourceIterator huli, destinationIterator muna )

Gamitin ang std::copy() function na naglalagay ng mga elemento mula sa isang set papunta sa vector. Ito ay tumatagal ng tatlong mga parameter.

dito:

  1. Ang unang parameter ay tumutukoy sa source iterator na tumuturo sa unang elemento sa iterator. Dito, ang set ay ang source iterator na tinukoy gamit ang begin() function.
  2. Katulad nito, ang pangalawang parameter ay tumuturo sa huling elemento (end() function).
  3. Ang ikatlong parameter ay tumutukoy sa patutunguhang iterator na tumuturo sa unang elemento (tinukoy gamit ang begin() function)  sa iterator.

Gumawa tayo ng set na may limang estudyante at kopyahin ang lahat ng elemento sa isang vector gamit ang nakaraang function.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng set - mga mag-aaral na may 5 elemento

itakda < string > mga mag-aaral = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' } ;

cout << 'Itakda: \n ' ;

para sa ( string i : mga mag-aaral )

cout << i << endl ;



// Create Vector - student_vcof size na katumbas ng laki ng set

vector < string > student_vc ( mga mag-aaral. laki ( ) ) ;



// Ipasok ang mga elemento mula sa isang Set - mga mag-aaral sa isang Vector - student_vc.

kopya ( mga mag-aaral. magsimula ( ) , mga mag-aaral. wakas ( ) , student_vc. magsimula ( ) ) ;



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

para sa ( string i : student_vc )

cout << i << endl ;

}

Output:

Ngayon, ang lahat ng mga elemento na naroroon sa hanay ng 'Mga Mag-aaral' ay kinopya sa vector ng 'mga mag-aaral_vc'.

Alisin ang Mga Duplicate na Elemento

  1. Una, kailangan nating pag-uri-uriin ang mga elemento sa vector upang ang lahat ng mga dobleng elemento ay magkatabi sa bawat isa gamit ang std::sort() function.
  2. std :: uri ( Vector una, Vector huli ) ;
  3. Gamitin ang std::unique() function para mapili ang mga duplicate na elemento. Kasabay nito, gamitin ang erase() function upang alisin ang mga duplicate na ibinalik ng std::unique() function. Ang pagkakasunud-sunod ng mga elemento ay maaaring magbago sa huling vector.
  4. vector. burahin ( std :: kakaiba ( Vector una, Vector huli ) , Vector huling ) )

Gumawa ng vector na 'mga mag-aaral' na may 10 elemento at ibalik ang vector sa pamamagitan ng pag-alis ng mga duplicate.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng vector - mga mag-aaral na may 10 elemento

vector < string > mga mag-aaral = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' ,

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

cout << 'Mga mag-aaral: \n ' ;

para sa ( string i : mga mag-aaral )

cout << i << '' ;



// Pagbukud-bukurin ang lahat ng mga elemento sa vector ng mga mag-aaral.

uri ( magsimula ( mga mag-aaral ) , wakas ( mga mag-aaral ) ) ;



// Gamitin ang unique() function para alisin ang mga duplicate na may erase() function

mga mag-aaral. burahin ( kakaiba ( magsimula ( mga mag-aaral ) , wakas ( mga mag-aaral ) ) , wakas ( mga mag-aaral ) ) ;



cout << ' \n \n Mga Natatanging Mag-aaral: \n ' ;

para sa ( sasakyan itr = cbegin ( mga mag-aaral ) ; itr ! = kunti lang ( mga mag-aaral ) ; ++ itr ) {

cout << * itr << '' ;

}

}

Output:

Ngayon, ang lahat ng mga elemento ay natatangi sa vector.

I-convert ang isang Vector sa isang Set

Hindi pinapayagan ng set ang mga duplicate na elemento. Kung nagta-type ka upang magpasok ng vector sa isang set na may mga duplicate, hindi sila papansinin. Ginagamit namin ang parehong std::copy() function na ginamit sa nakaraang senaryo na nag-convert ng set sa isang vector.

Sa ganitong senaryo:

  1. Kinukuha ng unang parameter ang vector bilang source iterator na tinukoy gamit ang begin() function.
  2. Kinukuha ng pangalawang parameter ang vector bilang source iterator na tinukoy gamit ang end() function.
  3. Ipasa ang std::inserter() function na ginagamit upang awtomatikong i-overwrite/kopyahin ang mga elemento sa isang partikular na posisyon sa set sa pamamagitan ng pagbibigay ng set at iterator na tumuturo sa dulo ng set bilang mga parameter.

Gumawa tayo ng vector na may 10 integer at kopyahin ang mga elemento sa isang set.

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng isang set - mga marka na may 10 mga halaga

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

cout << 'Vector: \n ' ;

para sa ( int i : mga marka )

cout << i << '' ;



// Create Set - marks_set ng laki na katumbas ng laki ng vector

itakda < int > marks_set ;



// Ipasok ang mga elemento mula sa isang Set - mga mag-aaral sa isang Vector - student_vc.

kopya ( magsimula ( mga marka ) ,tapos ( mga marka ) , tagapagpasok ( marks_set, end ( marks_set ) ) ) ;



cout << ' \n \n Itakda: \n ' ;

para sa ( int i : marks_set )

cout << i << '' ;

}

Output:

Ang umiiral na vector na pinangalanang 'marks' ay may 10 mga halaga. Pagkatapos kopyahin ito sa set na 'marks_set', mayroon lamang itong anim na elemento dahil ang iba pang apat na elemento ay nadoble.

Alisin ang Empty Strings

Walang paggamit ng mga walang laman na string na naroroon sa isang vector. Ito ay isang magandang kasanayan upang alisin ang mga walang laman na string na naroroon sa vector. Tingnan natin kung paano alisin ang mga walang laman na string mula sa C++ vector:

  1. Ulitin ang vector gamit ang 'para' na loop.
  2. Sa bawat pag-ulit, tingnan kung walang laman ang elemento (“”) o hindi gumagamit ng “==” operator na may at() member function.
  3. Gamit ang std::erase() function, alisin ang mga walang laman na string pagkatapos suriin ang nakaraang kundisyon.
  4. Ulitin ang step2 at step3 hanggang sa dulo ng vector.

Gawin natin ang vector ng 'mga kumpanya' na may 10 string. Kabilang sa mga ito, lima ang walang laman at inalis namin ang mga ito sa pamamagitan ng pagpapatupad ng nakaraang diskarte.

#include

#include

gamit namespace std ;

pangunahing ( ) {



vector < string > mga kumpanya { 'Kumpanya-A' , '' , 'Kumpanya-B' ,

'' , 'Kumpanya-C' , '' , 'Kumpanya-D' , '' , '' , '' } ;



// Ulitin ang mga kumpanya

// at alisin ang mga walang laman na elemento gamit ang erase()

para sa ( int itr = 1 ; itr < mga kumpanya. laki ( ) ; ++ itr ) {

kung ( mga kumpanya. sa ( itr ) == '' ) {

mga kumpanya. burahin ( mga kumpanya. magsimula ( ) + itr ) ;

-- itr ;

}
}

// Ipakita ang vector


para sa ( sasakyan at i : mga kumpanya ) {

cout << i << endl ;

}

}

Output:

Ngayon, hawak ng vector ng 'mga kumpanya' ang mga hindi laman na string.

Sumulat ng Vector sa isang Text File

Talakayin natin kung paano isulat ang lahat ng mga elemento na naroroon sa isang vector sa isang file gamit ang mga indeks ng vector gamit ang fstream .

  1. Itulak ang ilang elemento dito gamit ang push_back function pagkatapos masimulan ang vector.
  2. Gamitin ang open() function mula sa 'fstream' na library na ang mode ay lumabas.
  3. Traverse bawat elemento na naroroon sa vector gamit ang mga indeks sa isang 'para sa' loop at isulat ang bawat elemento sa ibinigay na file.
  4. Panghuli, isara ang file.

Ipatupad natin ang nakaraang diskarte sa pamamagitan ng pagpapatakbo ng C++ code.

#include

#include

#include

#include

gamit namespace std ;

pangunahing ( )

{

// Lumikha ng Vector - v_data

// at itulak ang dalawang elemento dito.

vector < string > v_data ;

v_data. push_back ( 'Maligayang pagdating' ) ;

v_data. push_back ( 'sa LinuxHint' ) ;

batis f ;



// Buksan ang file

f. bukas ( 'written_file.txt' ,ios_base :: palabas ) ;

// Ulitin ang bawat elemento ng vector at isulat sa file nang paisa-isa.

para sa ( int i = 0 ; i < v_data. laki ( ) ; i ++ )

{

f << v_data [ i ] << endl ;

}

// Isara ang file

f. malapit na ( ) ;

}

Output:

Ang 'v_data' vector ay may hawak na dalawang elemento at isang file ay nilikha sa landas kung saan ang programa ay pinaandar kasama ang mga elemento na naroroon sa vector.

Gumawa ng Vector mula sa Text File

Natutunan namin kung paano isulat ang mga elemento na naroroon sa vector sa isang text file. Dito, gumawa tayo ng vector mula sa content na nasa text file.

  1. Lumikha ng ' ifstream” variable na ginagamit upang basahin ang impormasyon mula sa text file kung saan nilikha namin ang vector mula sa file.
  2. Lumikha ng isang walang laman na vector upang mag-imbak ng nilalaman ng file at gumamit ng isang walang laman na string variable bilang isang bandila upang suriin ang dulo ng file.
  3. Basahin ang susunod na linya mula sa file hanggang sa maabot nito ang dulo (karaniwang gamit ang 'habang' loop). Gamitin ang push_back() function para basahin ang susunod na linya at itulak ito sa vector.
  4. Ipakita ang linya na naroroon sa linya nang hiwalay upang makita ang mga elemento na nasa vector sa console.

Ipatupad natin ang nakaraang diskarte sa pamamagitan ng pagpapatakbo ng C++ code. Isaalang-alang natin ang 'data.txt' file na may sumusunod na nilalaman. Dito, ang pangalan ng vector ay 'v_data'.

#include

gamit namespace std ;

pangunahing ( )

{

// Buksan ang text file - data
ifstream file ( 'data.txt' ) ;

// Lumikha ng vector - v_data ng uri - string


vector < string > v_data ;

thong noon ;

// Basahin ang susunod na linya mula sa data.txt
// hanggang sa umabot sa dulo.


habang ( file >> ay ) {

// Basahin ang susunod na linya at itulak sa v_data

v_data. push_back ( ay ) ;

}



// Ipakita ang linyang naroroon sa linya nang hiwalay.

kopya ( v_data. magsimula ( ) , v_data. wakas ( ) , ostream_iterator < string > ( cout , ' \n ' ) ) ;

}

Output:

Makikita natin na ang 'v_data' ay mayroong limang elemento na nagmula sa file.

Konklusyon

Sa mahabang artikulong ito, ginalugad namin ang lahat ng posibleng halimbawa na ginagamit sa mga real-time na application na nauugnay sa mga vector sa C++ programming language. Ang bawat halimbawa ay ipinaliwanag sa syntax, mga parameter, at halimbawa na may output. Ang mga komento ay idinaragdag sa bawat code upang makakuha ng malinaw na pag-unawa sa code.