30 C++ vektoru piemēri

30 C Vektoru Piemeri



C++ valodā Vector ir viendimensijas datu struktūra, kas dinamiski palielinās, pamatojoties uz prasībām. Datu organizēšana (ievietošana/modifikācija/dzēšana) šajā datu struktūrā var tikt veikta efektīvi. Tās lietojumprogrammas ietver:

  1. Matemātisko vektoru attēlošana zinātnes un inženierijas lietojumos
  2. Izmantojot šo datu struktūru, var ieviest rindas, stekus utt.

Lielākā daļa parasto CRUD darbību un funkciju, kas saistītas ar šo datu struktūru, ir detalizēti apskatītas scenārijā, izmantojot sintaksi un koda fragmentus.







Satura tēma:

  1. Elementa ievietošana vektorā
  2. Ievietojiet vektorā vairākus elementus
  3. Piekļūstiet elementiem no vektora
  4. Atjauniniet elementu vektorā
  5. Noņemiet konkrētu elementu no vektora
  6. Noņemiet visus elementus no vektora
  7. Vektoru savienība
  8. Vektoru krustpunkts
  9. Pārbaudiet, vai vektors ir tukšs vai nav
  10. Pārvietojiet vektoru, izmantojot Const_Iterator
  11. Pārvietojiet vektoru, izmantojot Reverse_Iterator
  12. Ievietojiet elementus vektorā
  13. Izspiediet elementus no vektora
  14. Apmainiet vektorus
  15. Atnesiet pirmo elementu no vektora
  16. Atnesiet pēdējo elementu no vektora
  17. Piešķiriet vektoram jaunas vērtības
  18. Paplašiniet vektoru, izmantojot Emplace()
  19. Paplašiniet vektoru, izmantojot Emplace_Back()
  20. Maksimālais vektora elements
  21. Minimālais vektora elements
  22. Elementu summa vektorā
  23. Divu vektoru elementārā reizināšana
  24. Divu vektoru punktu reizinājums
  25. Pārvērtiet komplektu par vektoru
  26. Noņemiet dublētos elementus
  27. Pārvērtiet vektoru komplektā
  28. Noņemiet tukšās virknes
  29. Teksta failā ierakstiet vektoru
  30. Izveidojiet vektoru no teksta faila

Elementa ievietošana vektorā

The std::vector::insert() funkcija C++ STL tiek izmantota, lai ievietotu elementus norādītajā vietā.



Sintakse:

vektors. ievietot ( pozīcija, elements ) ;

Izmantosim šo funkciju un nodosim pirmo pozīciju kā parametru, kas norāda vietu, kur elements jāievieto, un norādīsim elementu kā otro parametru.



Funkciju begin () šeit var izmantot, lai atgrieztu iteratoru, kas norāda uz ievades vektora pirmo elementu. Pievienojot šai funkcijai pozīciju, elements tiek ievietots šajā pozīcijā.





Izveidosim string tipa vektoru “students_names” un ievietosim divas virknes pirmajā un otrajā pozīcijā vienu pēc otras, izmantojot funkciju insert().

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Vektora inicializācija - studentu_vārdi

vektors < virkne > studentu_vārdi ;

cout << 'Esošais vektors: \n ' ;

priekš ( auto i : studentu_vārdi ) cout << i << endl ;

// Pirmajā pozīcijā ievietot 'Sravan Kumar'.

studentu_vārdi. ievietot ( studentu_vārdi. sākt ( ) + 0 , 'Šravans Kumars' ) ;

// Otrajā pozīcijā ievietot 'Sravan Kumar'.

studentu_vārdi. ievietot ( studentu_vārdi. sākt ( ) + 1 , 'Lalitha' ) ;

cout << 'Galīgais vektors: \n ' ;

priekš ( auto j : studentu_vārdi ) cout << j << endl ;

}

Izvade:

Iepriekš vektors “studentu_nosaukumi” bija tukšs. Pēc ievietošanas vektorā ir divi elementi.



Ievietojiet vektorā vairākus elementus

Šajā scenārijā mēs izmantojam to pašu funkciju, kas ir std::vector::insert(). Bet mums ir jānodod papildu/atšķirīgi parametri vienai un tai pašai funkcijai, lai vektorā ievietotu vairākus elementus.

1. scenārijs: viena elementa ievietošana vairākas reizes

Šajā scenārijā mēs pievienojam vienu un to pašu elementu vairākas reizes.

Sintakse:

vektors. ievietot ( pozīcija, izmērs, elements ) ;

Lai to izdarītu, izmērs kā otrais parametrs ir jānodod funkcijai insert(). Kopējais parametru skaits, kas tiek nodots šai funkcijai, ir trīs.

Šeit:

  1. Pozīcijas parametrs norāda ievietojamo elementa pozīciju. Ja izmērs ir lielāks par 1, sākuma pozīcijas indekss būs pozīcija.
  2. Lieluma parametrs norāda, cik reižu elements ir jāievieto.
  3. Elementa parametrs ņem elementu, kas jāievieto vektorā.

Apsveriet vektoru “studentu_nosaukumi” ar divām virknēm. Piecas reizes ievietojiet “Lavanya” virknes otrajā pozīcijā.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Vektora inicializācija - studentu_vārdi

vektors < virkne > studentu_vārdi { 'Šravans Kumars' , 'Lalitha' } ;

cout << 'Esošais vektors: \n ' ;

priekš ( auto i : studentu_vārdi ) cout << i << endl ;

// Ievietojiet 'Lavanya' otrajā pozīcijā 5 reizes

studentu_vārdi. ievietot ( studentu_vārdi. sākt ( ) + 1 , 5 , 'Lavanya' ) ;

cout << ' \n Galīgais vektors: \n ' ;

priekš ( auto j : studentu_vārdi ) cout << j << endl ;

}

Izvade:

Esošajā vektorā “Sravan Kumar” ir pirmajā pozīcijā, bet “Lalitha” – otrajā pozīcijā. Piecreiz ievietojot “Lavanya” (no otrās pozīcijas uz sesto), “Lalitha” pacēlās uz septīto pozīciju (pēdējo).

2. scenārijs: vairāku elementu ievietošana

Šajā scenārijā mēs pievienojam dažādus elementus vienlaikus no cita vektora. Mēs arī šeit izmantojam to pašu funkciju, taču mainīsies sintakse un parametri.

Sintakse:

vektors. ievietot ( pozīcija, pirmais_iterators, otrais_iterators ) ;

Lai to izdarītu, mums ir jānodod izmērs kā otrais parametrs funkcijai insert(). Kopējais šai funkcijai nodoto parametru skaits ir trīs.

Šeit:

  1. Pozīcijas parametrs norāda ievietojamo elementa pozīciju.
  2. “first_iterator” norāda sākuma pozīciju, no kuras elementi jāievieto (pamatā, izmantojot start() funkciju, tiek atgriezts iterators, kas norāda uz pirmo elementu, kas atrodas konteinerā).
  3. “Second_iterator” norāda beigu pozīciju, līdz kurai elementi jāievieto (pamatā, izmantojot end() funkciju, tiek atgriezts iterators, kas norāda blakus pēdējam konteinerā esošajam punktam).

Izveidojiet divus vesela skaitļa vektorus, “marks1” un “marks2”. Ievietojiet visus elementus, kas atrodas vektorā “marks2” vektora “marks1” pirmajā pozīcijā.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Vektora inicializācija - atzīmes1

vektors < starpt > atzīmes1 { 100 , 89 , 90 , 78 , 98 } ;

cout << 'Pirmais vektors: \n ' ;

priekš ( auto i : atzīmes1 ) cout << i << endl ;

// Vektora inicializācija - atzīmes2

vektors < starpt > atzīmes2 { 56 , Četri, pieci , 65 } ;

cout << 'Otrais vektors: \n ' ;

priekš ( auto j : atzīmes2 ) cout << j << endl ;

atzīmes1. ievietot ( sākt ( atzīmes1 ) , sāc ( atzīmes2 ) , beigas ( atzīmes2 ) ) ;



// Galīgais vektors

cout << 'Pirmais gala vektors: \n ' ;

priekš ( auto x : atzīmes1 )

cout << x << ' ' ;

}

Izvade:

Pirmajā vektorā (marks1) ir pieci elementi, bet otrajā vektorā (marks2) ir trīs elementi. Mēs nodevām sākuma (atzīmes1), sākuma (atzīmes2), beigu (atzīmes2) parametrus funkcijai “insert”, lai visi elementi, kas atrodas otrajā vektorā, tiktu iterēti un ievietoti pirmajā vektorā sākumā. Tātad, pirmajā vektorā ir astoņi elementi.

Piekļūstiet elementiem no vektora

1. Izmantojot [] operatoru

Dažos gadījumos jums var būt prasība atgriezt tikai konkrētus elementus no vektora. Visu elementu atgriešana nav nepieciešama. Tātad, lai atgrieztu tikai konkrētus elementus, kuru pamatā ir indekss, tiek izmantots indeksa operators un at() funkcijas.

Sintakse:

vektors [ indeksa_pozīcija ]

Programmā C++ jebkurai datu struktūrai indeksēšana sākas no 0. Ja elements neeksistē, tas atgriežas tukšs (nav kļūdas vai tiek parādīts brīdinājums).

Apsveriet “produktu” vektoru ar pieciem vienumiem. Piekļūstiet visiem elementiem pa vienam, izmantojot indeksa pozīciju.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - produkti ar 5 virknēm

vektors < virkne > produktiem { 'ziepes' , 'šampūns' , 'eļļa' , 'augļi' , 'dārzeņi' } ;

//Piekļuve elementiem no produktiem

cout << 'Pirmais elements:' << produktiem [ 0 ] << endl ;

cout << 'Otrais elements:' << produktiem [ 1 ] << endl ;

cout << 'Trešais elements:' << produktiem [ 2 ] << endl ;

cout << 'Ceturtais elements:' << produktiem [ 3 ] << endl ;

cout << 'Piektais elements:' << produktiem [ 4 ] << endl ;



// Mēģiniet piekļūt 9. elementam

cout << 'Devītais elements:' << produktiem [ 8 ] << endl ;

}

Izvade:

Indeksā 8 nav neviena elementa. Tātad tiek atgriezts tukšs.

2. Funkcijas At() izmantošana

At() ir dalībnieka funkcija, kas ir līdzīga iepriekšējam lietošanas gadījumam, taču tā atgriež “std::out_of_range” izņēmumu, ja tai tiek nodrošināts indekss ārpus diapazona.

Sintakse:

vektors. plkst ( indeksa_pozīcija )

Mums ir jānodod indeksa pozīcija šai funkcijai.

Apsveriet “produktu” vektoru ar pieciem vienumiem. Piekļūstiet visiem elementiem pa vienam, izmantojot indeksa pozīciju, un mēģiniet piekļūt elementam, kas atrodas 9. pozīcijā.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - produkti ar 5 virknēm

vektors < virkne > produktiem { 'ziepes' , 'šampūns' , 'eļļa' , 'augļi' , 'dārzeņi' } ;

//Piekļuve elementiem no produktiem

cout << 'Pirmais elements:' << produktiem. plkst ( 0 ) << endl ;

cout << 'Otrais elements:' << produktiem. plkst ( 1 ) << endl ;

cout << 'Trešais elements:' << produktiem. plkst ( 2 ) << endl ;

cout << 'Ceturtais elements:' << produktiem. plkst ( 3 ) << endl ;

cout << 'Piektais elements:' << produktiem. plkst ( 4 ) << endl ;



//Piekļuve elementiem, kas nav vektorā

cout << 'Devītais elements:' << produktiem. plkst ( 8 ) << endl ;

}

Izvade:

Piekļūstot 9. elementam, rodas kļūda:

terminate tiek izsaukts pēc instances izmešanas 'std::out_of_range'

kas ( ) : vektors :: _M_diapazona_pārbaude : __n ( kurš ir 8 ) >= šis - > Izmērs ( ) ( kurš ir 5 )

Elementa atjaunināšana vektorā

1. Izmantojot [] operatoru

Izmantojot indeksa pozīciju, mēs varam atjaunināt elementu vektorā. Operators [] ieņem atjaunināmā elementa indeksa pozīciju. Jaunais elements tiks piešķirts šim operatoram.

Sintakse:

Vektors [ indeksa_pozīcija ] = Elements

Apsveriet vektoru “studenta atzīmes” ar piecām vērtībām. Atjauniniet 1. un 3. rādītājos esošos elementus.

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - student_marks

vektors < starpt > studentu_atzīmes { 98 , 78 , 90 , 67 , 89 } ;

cout << 'Esošās zīmes:' << endl ;

priekš ( starpt itr : studentu_atzīmes )

cout << itr << endl ;

// Atjauniniet elementu indeksā-3 ar 100

studentu_atzīmes [ 3 ] = 100 ;

// Atjauniniet elementu indeksā-1 ar 60

studentu_atzīmes [ 1 ] = 60 ;

cout << 'Gala atzīmes:' << endl ;

priekš ( starpt itr : studentu_atzīmes )

cout << itr << endl ;

}

Izvade:

Mēs redzam, ka pēdējais vektors satur atjaunināšanas elementus indeksos 1 un 3.

2. Funkcijas At() izmantošana

Līdzīgi kā indeksa operators, at() būtībā ir dalībnieka funkcija, kas atjaunina vērtību, pamatojoties uz indeksu iteratorā. Ja šajā funkcijā norādītais indekss nepastāv, tiek izmests izņēmums “std::out_of_range”.

vektors. plkst ( indeksa_pozīcija ) = Elements

Apsveriet “produktu” vektoru ar pieciem vienumiem. Atjauniniet visus vektorā esošos elementus ar citiem elementiem.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - produkti ar 5 virknēm

vektors < virkne > produktiem { 'ziepes' , 'šampūns' , 'eļļa' , 'augļi' , 'dārzeņi' } ;

cout << 'Esošie produkti:' << endl ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;

//Notiek visu virkņu atjaunināšana

produktiem. plkst ( 0 ) = 'Kūka' ;

produktiem. plkst ( 1 ) = 'šokolāde' ;

produktiem. plkst ( 2 ) = 'augļi' ;

produktiem. plkst ( 3 ) = 'Sīpoli' ;

produktiem. plkst ( 4 ) = 'Bezalkoholiskie dzērieni' ;



cout << ' \n Gala produkti: ' << endl ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;

}

Izvade:

Noņemiet konkrētu elementu no vektora

Programmā C++, std::vector::dzēst() funkcija tiek izmantota, lai noņemtu konkrētu elementu/elementu diapazonu no vektora. Elementi tiek noņemti, pamatojoties uz iteratora pozīcijām.

Sintakse:

vektors. dzēst ( iteratora pozīcija )

Apskatīsim sintaksi konkrētā elementa noņemšanai no vektora. Mēs varam izmantot sākuma() vai end() funkcijas, lai iegūtu noņemamajā vektorā esošā elementa pozīciju.

Apsveriet “produktu” vektoru ar pieciem vienumiem.

  1. Noņemiet trešo elementu, norādot sākuma() iteratoru. Begin() norāda uz pirmo vektora elementu. Ja šai funkcijai pievienojam divus, tas norāda uz trešo elementu.
  2. Noņemiet pēdējo elementu, norādot end() iteratoru. End() norāda uz pēdējo vektora elementu.
#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - produkti ar 5 virknēm

vektors < virkne > produktiem { 'ziepes' , 'šampūns' , 'eļļa' , 'augļi' , 'dārzeņi' } ;

cout << 'Esošie produkti:' << endl ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;



// Noņemt 3. elementu

produktiem. dzēst ( produktiem. sākt ( ) + 2 ) ;

cout << ' \n Pēc trešā elementa noņemšanas: \n ' ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;

// Noņemt pēdējo elementu

produktiem. dzēst ( produktiem. beigas ( ) ) ;

cout << ' \n Pēc pēdējā elementa noņemšanas: \n ' ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;

}

Izvade:

Tagad vektorā “produkti” ir tikai trīs elementi (“ziepes”, “šampūns”, “augļi”).

Noņemiet visus elementus no vektora

1. scenārijs: noņemiet elementu diapazonu no vektora

Izmantosim funkciju std::vector::erase(), lai noņemtu vairākus elementus diapazonā.

Sintakse:

vektors. dzēst ( iterators pirmais, iterators pēdējais )

Divi iteratori (begin () norāda uz pirmo elementu un end () norāda uz pēdējo elementu funkcijām) tiek izmantoti, lai norādītu diapazonu.

Apsveriet 'produktu' vektoru ar pieciem vienumiem un noņemiet visus elementus no otrās pozīcijas. Lai to panāktu, pirmais iterators ir sākums (produkti)+1, kas norāda uz otro elementu, un otrais iterators ir beigas (produkti).

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - produkti ar 5 virknēm

vektors < virkne > produktiem { 'ziepes' , 'šampūns' , 'eļļa' , 'augļi' , 'dārzeņi' } ;

cout << 'Esošie produkti:' << endl ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;



// Noņemiet visus elementus no otrās pozīcijas

produktiem. dzēst ( sākt ( produktiem ) + 1 , beigas ( produktiem ) ) ;

cout << ' \n Gala produkti: \n ' ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;

}

Izvade:

Tagad ir tikai viens elements (“ziepes”), kas atrodas “produktu” vektorā.

2. scenārijs: noņemiet visus elementus no vektora

Izmantosim std::vector::clear() funkcija, lai noņemtu visus elementus no vektora.

Sintakse:

vektors. skaidrs ( )

Šai funkcijai netiek nodoti parametri.

Apsveriet to pašu vektoru, kas tika izmantots pirmajā scenārijā, un noņemiet visus elementus, izmantojot funkciju clear().

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - produkti ar 5 virknēm

vektors < virkne > produktiem { 'ziepes' , 'šampūns' , 'eļļa' , 'augļi' , 'dārzeņi' } ;

cout << 'Esošie produkti:' << endl ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;



// Noņemiet no produktiem visus elementus

produktiem. skaidrs ( ) ;

cout << ' \n Gala produkti: \n ' ;

priekš ( virkne itr : produktiem )

cout << itr << endl ;

}

Izvade:

Mēs redzam, ka vektorā “produkti” nav elementu.

Vektoru savienība

Ir iespējams veikt UNION darbību vektoros, izmantojot funkciju std::set_union(). Savienība atgriež unikālos elementus no vektoriem, ignorējot dublētos elementus. Mums ir jānodod abi iteratori šai funkcijai. Līdztekus tam ir jāiziet izvades iterators, kas saglabā rezultātu, ko atgriež abi iteratori.

Sintakse:

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

Šeit:

  1. “First1” norāda uz pirmā iteratora (vektora) pirmo elementu.
  2. “Pēdējais1” norāda uz pirmā iteratora (vektora) pēdējo elementu.
  3. “First2” norāda uz otrā iteratora (vektora) pirmo elementu.
  4. “Pēdējais2” norāda uz otrā iteratora (vektora) pēdējo elementu.

Izveidojiet divus vesela skaitļa vektorus – “subjekti1” un “subjekti2”.

  1. Kārtojiet divus vektorus, izmantojot funkciju sort(), nododot iteratorus.
  2. Izveidojiet izejas vektoru (iteratoru).
  3. Atrodiet šo divu vektoru savienību, izmantojot funkciju std::set_union(). Izmantojiet begin() kā pirmo iteratoru un end() kā pēdējo iteratoru.
  4. Atkārtojiet izvades vektoru, lai parādītu funkcijas atgrieztos elementus.
#include

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - atzīmes1

vektors < starpt > atzīmes1 = { 100 , 90 , 80 , 70 , 60 } ;



// Izveidot vektoru - atzīmes2

vektors < starpt > atzīmes2 = { 80 , 90 , 60 , 70 , 100 } ;

// Kārtojiet abus vektorus

kārtot ( atzīmes1. sākt ( ) , atzīmes1. beigas ( ) ) ;

kārtot ( atzīmes2. sākt ( ) , atzīmes2. beigas ( ) ) ;

vektors < starpt > izvadvektors ( atzīmes1. Izmērs ( ) + atzīmes2. Izmērs ( ) ) ;

vektors < starpt > :: iterators es, s ;

i = set_union ( atzīmes1. sākt ( ) , atzīmes1. beigas ( ) ,

atzīmes2. sākt ( ) ,atzīmes2. beigas ( ) ,

izvadvektors. sākt ( ) ) ;

cout << ' \n Marks1 U Marks2: \n ' ;

priekš ( s = izvadvektors. sākt ( ) ; s ! = i ; ++ s )

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

}

Izvade:

Abos vektoros (subjekti1 un subjekti2) ir tikai pieci unikāli elementi.

Vektoru krustpunkts

Divu vektoru krustpunkta atrašana var būt iespējama, izmantojot funkciju std::set_intersection(). Krustojums atgriež elementus, kas atrodas abos vektoros.

Sintakse:

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

Parametrus, kas tiek nodoti funkcijai set_union(), var nodot arī šai funkcijai set_intersection().

Izveidojiet divus vesela skaitļa vektorus – “subjekti1” un “subjekti2”.

  1. Kārtojiet divus vektorus, izmantojot funkciju sort(), nododot iteratorus.
  2. Izveidojiet izejas vektoru (iteratoru).
  3. Atrodiet šo divu vektoru krustpunktu, izmantojot funkciju std::set_intersection(). Izmantojiet begin() kā pirmo iteratoru un end() kā pēdējo iteratoru.
  4. Atkārtojiet izvades vektoru, lai parādītu funkcijas atgrieztos elementus.
#include

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - atzīmes1

vektors < starpt > atzīmes1 = { 100 , 10 , 80 , 40 , 60 } ;



// Izveidot vektoru - atzīmes2

vektors < starpt > atzīmes2 = { piecdesmit , 90 , 60 , 10 , 100 } ;

// Kārtojiet abus vektorus

kārtot ( atzīmes1. sākt ( ) , atzīmes1. beigas ( ) ) ;

kārtot ( atzīmes2. sākt ( ) , atzīmes2. beigas ( ) ) ;

vektors < starpt > izvadvektors ( atzīmes1. Izmērs ( ) + atzīmes2. Izmērs ( ) ) ;

vektors < starpt > :: iterators es, s ;

i = set_krustojums ( atzīmes1. sākt ( ) , atzīmes1. beigas ( ) ,

atzīmes2. sākt ( ) ,atzīmes2. beigas ( ) ,

izvadvektors. sākt ( ) ) ;

cout << ' \n Marks1 ∩ Marks2: \n ' ;

priekš ( s = izvadvektors. sākt ( ) ; s ! = i ; ++ s )

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

}

Izvade:

Abos vektoros (subjekti1 un subjekti2) ir tikai trīs elementi.

Pārbaudiet, vai vektors ir tukšs vai nav

Pirms darba ar vektoriem ir svarīgi pārbaudīt, vai vektors ir tukšs vai nē. Laba prakse programmatūras projektos ir arī pārbaudīt, vai vektors ir tukšs, pirms veicat tādas darbības kā CRUD darbības utt.

1. Std::vector::empty()

Šī funkcija atgriež 1, ja vektors ir tukšs (nesatur nevienu elementu). Pretējā gadījumā tiek atgriezts 0. Šai funkcijai netiek nodots neviens parametrs.

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

Funkcija std::vector::size() atgriež veselu skaitli, kas apzīmē vektorā esošo elementu kopējo skaitu.

Izveidojiet divus vektorus – “college1” un “college2”. “College1” satur piecus elementus, un “college2” ir tukšs. Lietojiet abas funkcijas abiem vektoriem un pārbaudiet izvadi.

#include

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - koledža1

vektors < virkne > koledža 1 = { 'koledža-A' , 'koledža-B' , 'koledža-C' , 'koledža-D' , 'koledža-E' } ;

// Izveidot vektoru - koledža2

vektors < virkne > koledža2 ;

// tukšs ()

cout << koledža 1. tukšs ( ) << endl ;

cout << koledža2. tukšs ( ) << endl ;

// Izmērs()

cout << koledža 1. Izmērs ( ) << endl ;

cout << koledža2. Izmērs ( ) << endl ;

}

Izvade:

Funkcija tukša () atgriež 0 “college1” un 1 “koledža2”. Funkcija size() atgriež piecus “college1” un 0 “college2”.

Pārvietojiet vektoru, izmantojot Const_Iterator

Strādājot ar C++ konteineriem, piemēram, kopām, vektoriem utt., ir iespējams atkārtot visus konteinerā esošos elementus, tos nemodificējot. The const_iterator ir viens no iteratoriem, kas sasniedz šo scenāriju. cbegin() (norāda uz pirmo vektora elementu) un cend() (norāda uz pēdējo vektora elementu) ir divas funkcijas, ko nodrošina katrs konteiners, ko izmanto, lai atgrieztu konstanto iteratoru uz sākuma un beigām. konteiners. Atkārtojot vektoru, mēs varam izmantot šīs divas funkcijas.

  1. Izveidosim vektoru ar nosaukumu “departamenti” ar piecām virknēm.
  2. Deklarē const_iterator — ctr tipa .
  3. Atkārtojiet nodaļas, izmantojot iepriekšējo iteratoru, izmantojot cilpu “for”, un parādiet to.
#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - nodaļas

vektors < virkne > nodaļas = { 'Pārdošana' , 'Apkalpošana' ,

'HR' , 'IT' , 'Citi' } ;



vektors < virkne > :: const_iterator ctr ;

// Atkārtojiet departamentus, izmantojot const_iterator - ctr.

priekš ( ctr = nodaļas. cbegin ( ) ; ctr ! = nodaļas. daži ( ) ; ctr ++ ) {

cout << * ctr << endl ;

}

}

Izvade:

Pārvietojiet vektoru, izmantojot Reverse_Iterator

The reverse_iterator ir arī iterators, kas ir līdzīgs const_iterator, taču tas atgriež elementus apgrieztā secībā. rbegin() (norāda uz pēdējo vektora elementu) un rend() (norāda uz pirmo vektora elementu) ir divas funkcijas, ko nodrošina katrs konteiners, ko izmanto, lai atgrieztu konstanto iteratoru uz beigām un sākumu. konteiners.

  1. Izveidosim vektoru ar nosaukumu “departamenti” ar piecām virknēm.
  2. Deklarē reverse_iterator — rtr tipa .
  3. Atkārtojiet nodaļas, izmantojot iepriekšējo iteratoru, izmantojot cilpu “for”, un parādiet to.
#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - nodaļas

vektors < virkne > nodaļas = { 'Pārdošana' , 'Apkalpošana' ,

'HR' , 'IT' , 'Citi' } ;



vektors < virkne > :: reverse_iterator rtr ;

// Atkārtojiet departamentus, izmantojot reverse_iterator - rtr.

priekš ( rtr = nodaļas. rbegin ( ) ; rtr ! = nodaļas. padara ( ) ; rtr ++ ) {

cout << * rtr << endl ;

}

}

Izvade:

Ievietojiet elementus vektorā

Elementu nospiešana vai pievienošana vektoram ir vienvirziena ievietošana, ko var veikt, izmantojot vektors::push_back() funkciju.

Sintakse:

vektors. atgrūst ( elements )

Ir nepieciešams elements, kas jāiespiež vektorā kā parametrs.

Izveidosim tukšu vektoru ar nosaukumu “departments” ar piecām virknēm un virzīsim divas virknes vienu pēc otras, izmantojot funkciju push_back().

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Inicializēt vektoru - nodaļas

vektors < virkne > nodaļas ;

cout << 'Faktiskās nodaļas:' << endl ;

priekš ( auto itr = nodaļas. sākt ( ) ; itr ! = nodaļas. beigas ( ) ; ++ itr )

cout << * itr << endl ;

// Nospiediet 'Pārdošana'

nodaļas. atgrūst ( 'Pārdošana' ) ;

// Grūd'

nodaļas. atgrūst ( 'IT' ) ;

cout << ' \n Noslēguma nodaļas:' << endl ;

priekš ( auto itr = nodaļas. sākt ( ) ; itr ! = nodaļas. beigas ( ) ; ++ itr )

cout << * itr << endl ;

}

Izvade:

Pirmkārt, mēs nospiežam “Pārdošana”. Pēc tam “IT” tiek iespiests vektorā. Tagad “nodaļu” vektoram ir divi elementi.

Izspiediet elementus no vektora

Ja vēlaties dzēst pēdējo vektorā esošo vienumu, izmantojot vektors::pop_back() funkcija ir labākā pieeja. Tas izdzēš pēdējo vektorā esošo elementu.

Sintakse:

vektors. pop_back ( )

Šai funkcijai nav nepieciešams parametrs. Tas parāda nenoteiktu uzvedību, ja mēģinām izdzēst pēdējo elementu no tukša vektora.

Izveidosim tukšu vektoru ar nosaukumu “departments” ar piecām virknēm un izdzēsīsim pēdējo elementu, izmantojot iepriekšējo funkciju. Parādiet vektoru abos gadījumos.

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Inicializēt vektoru - nodaļas

vektors < virkne > nodaļas = { 'Pārdošana' , 'IT' , 'Apkalpošana' , 'Mārketings' , 'HR' } ;

cout << 'Faktiskās nodaļas:' << endl ;

priekš ( auto itr = nodaļas. sākt ( ) ; itr ! = nodaļas. beigas ( ) ; ++ itr )

cout << * itr << endl ;



// Dzēst pēdējo elementu

nodaļas. pop_back ( ) ;

cout << ' \n Nobeiguma nodaļas:' << endl ;

priekš ( auto itr = nodaļas. sākt ( ) ; itr ! = nodaļas. beigas ( ) ; ++ itr )

cout << * itr << endl ;

}

Izvade:

“HR” ir pēdējais elements, kas atrodas vektorā “departments”. Tātad tas tiek noņemts no vektora, un galīgajā vektorā ir “Pārdošana”, “IT”, “Pakalpojums” un “Mārketings”.

Apmainiet vektorus

The vektors::swap() Funkcija C++ STL tiek izmantota, lai apmainītu visus elementus, kas atrodas divos vektoros.

Sintakse:

pirmais_vektors. mijmaiņa ( otrais_vektors )

Tajā nav ņemts vērā vektoru lielums, bet vektoriem jābūt viena veida (ja vektoru veidi atšķiras, tiek parādīta kļūda).

Izveidosim divus vektorus – “augļi” un “dārzeņi” – virknes tipa ar dažādu izmēru. Apmainiet katru no tiem un abos gadījumos parādiet vektorus.

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Inicializēt vektoru - augļus

vektors < virkne > augļiem = { 'Ābols' , 'Mango' } ;

cout << 'Faktiskie augļi:' << endl ;

priekš ( auto itr = augļiem. sākt ( ) ; itr ! = augļiem. beigas ( ) ; ++ itr )

cout << * itr << endl ;



// Inicializēt vektoru - dārzeņi

vektors < virkne > dārzeņus = { 'Kartupeļi' , 'Tomāts' , 'Brinjal' } ;

cout << ' \n Faktiskie dārzeņi:' << endl ;

priekš ( auto itr = dārzeņus. sākt ( ) ; itr ! = dārzeņus. beigas ( ) ; ++ itr )

cout << * itr << endl ;



// Apmainiet elementus abos vektoros

augļiem. mijmaiņa ( dārzeņus ) ;

cout << ' \n Augļi pēc nomaiņas:' << endl ;

priekš ( auto itr = augļiem. sākt ( ) ; itr ! = augļiem. beigas ( ) ; ++ itr )

cout << * itr << endl ;

cout << ' \n Dārzeņi pēc maiņas:' << endl ;

priekš ( auto itr = dārzeņus. sākt ( ) ; itr ! = dārzeņus. beigas ( ) ; ++ itr )

cout << * itr << endl ;

}

Izvade:

Iepriekš vektorā “augļi” ir divi elementi, bet vektorā “dārzeņi” – trīs elementi. Pēc apmaiņas vektorā “augļi” ir trīs elementi, un vektorā “dārzeņi” ir divi elementi.

Atnesiet pirmo elementu no vektora

Dažos gadījumos prasība ir atgriezt tikai pirmo elementu no vektora. Vektora::front() funkcija C++ STL ienes tikai pirmo elementu no vektora.

Sintakse:

vektors. priekšā ( )

Šī funkcija neņems nekādus parametrus. Ja vektors ir tukšs, tiek parādīta kļūda.

Izveidosim divus vektorus – “augļus” un “dārzeņus” – virknes tipa un mēģināsim ienest pirmo elementu atsevišķi no abiem vektoriem.

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - augļi ar 2 elementiem

vektors < virkne > augļiem = { 'Ābols' , 'Mango' } ;

// Atgriezt pirmo elementu

cout << augļiem. priekšā ( ) << endl ;



// Inicializēt vektoru - dārzeņi

vektors < virkne > dārzeņus ;

// Mēģiniet atgriezt pirmo elementu

cout << dārzeņus. priekšā ( ) ;

}

Izvade:

'Ābols' ir pirmais elements, kas atrodas 'augļu' vektorā. Tātad, tas tiek atgriezts. Bet kļūda tiek izlaista, mēģinot izgūt pirmo elementu no vektora “dārzeņi”, jo tas ir tukšs.

Atnesiet pēdējo elementu no vektora

Vektora::end() funkcija C++ STL ienes tikai pēdējo elementu no vektora.

Sintakse:

vektors. atpakaļ ( )

Šī funkcija neņems nekādus parametrus. Ja vektors ir tukšs, tiek parādīta kļūda.

Izveidosim divus vektorus – “augļi” un “dārzeņi” – virknes tipa un mēģināsim izgūt pēdējo elementu atsevišķi no abiem vektoriem.

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - augļi ar 2 elementiem

vektors < virkne > augļiem = { 'Ābols' , 'Mango' } ;

// Iegūstiet pēdējo elementu

cout << augļiem. atpakaļ ( ) << endl ;



// Inicializēt vektoru - dārzeņi

vektors < virkne > dārzeņus ;

// Mēģiniet ienest pēdējo elementu

cout << dārzeņus. atpakaļ ( ) ;

}

Izvade:

“Mango” ir pēdējais elements, kas atrodas “augļu” vektorā. Tātad, tas tiek atgriezts. Taču tiek parādīta kļūda, mēģinot izgūt pēdējo elementu no vektora “dārzeņi”, jo tas ir tukšs.

Piešķiriet vektoram jaunas vērtības

Dažos gadījumos, ja vēlaties atjaunināt visas vērtības ar jauno vērtību vai izveidot vektoru ar tādām pašām vērtībām, labākā pieeja ir funkcijas vector::assign() izmantošana. Izmantojot šo funkciju, mēs varam:

  1. Izveidojiet vektoru ar visiem līdzīgiem elementiem
  2. Pārveidojiet esošo vektoru ar to pašu elementu

Sintakse:

vektors. piešķirt ( izmērs, vērtība )

Šai funkcijai ir nepieciešami divi parametri.

Šeit:

  1. Izmērs norāda piešķiramo elementu skaitu.
  2. Vērtība norāda piešķiramo elementu.

Izveidosim vektoru ar nosaukumu “marks1” ar piecām vērtībām un atjaunināsim šo vektoru ar četriem elementiem tā, lai visi elementi atjauninātajā vektorā būtu vienādi ar 20.

#include

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - atzīmes1

vektors < starpt > atzīmes1 = { 100 , 90 , 80 , 70 , 60 } ;

cout << 'Faktiskais vektors:' << endl ;

priekš ( starpt i = 0 ; i < atzīmes1. Izmērs ( ) ; i ++ )

cout << atzīmes1 [ i ] << endl ;



atzīmes1. piešķirt ( 4 , divdesmit ) ;



cout << ' \n Atjaunināts vektors:' << endl ;

priekš ( starpt i = 0 ; i < atzīmes1. Izmērs ( ) ; i ++ )

cout << atzīmes1 [ i ] << endl ;

}

Izvade:

Iepriekš vektors satur piecus dažādus elementus. Tagad tajā ir tikai četri elementi, un visi ir vienādi ar 20.

Paplašiniet vektoru, izmantojot Emplace()

Mēs jau zinām, ka jauni elementi tiek dinamiski ievietoti jebkurā vektora pozīcijā. Tas ir iespējams, izmantojot vektoru::emplace() funkciju. Apskatīsim sintaksi un parametrus, ko pieņem šī funkcija.

Sintakse:

vektors. atrašanās vieta ( const_iterator pozīcija, elements )

Šai funkcijai tiek nodoti divi obligāti parametri.

Šeit:

  1. Pirmais parametrs ieņem pozīciju, lai mēs varētu ievietot elementu jebkurā pozīcijā. Pozīciju varam iegūt, izmantojot iteratora funkciju begin() vai end().
  2. Otrais parametrs ir vektorā ievietojamais elements.

Apsveriet “ķīmisko vielu” vektoru ar diviem elementiem.

  1. Pirmajā pozīcijā ievietojiet 'Mangāns' - sākums (ķimikālijas)
  2. Ievietojiet 'Varš' pēdējā pozīcijā - galā (ķīmiskās vielas)
  3. Trešajā pozīcijā ievietojiet ‘Sulphur’ – start(chemicals)+2
#include

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - ķīmiskās vielas

vektors < virkne > ķīmiskās vielas = { 'Skābeklis' , 'CO' } ;

cout << 'Faktiskās ķīmiskās vielas:' << endl ;

priekš ( starpt i = 0 ; i < ķīmiskās vielas. Izmērs ( ) ; i ++ )

cout << ķīmiskās vielas [ i ] << endl ;



// Ievietot elementu pirmajā pozīcijā

ķīmiskās vielas. atrašanās vieta ( sākt ( ķīmiskās vielas ) , 'Mangāns' ) ;



// Ievietot elementu pēdējā pozīcijā

ķīmiskās vielas. atrašanās vieta ( beigas ( ķīmiskās vielas ) , 'Varš' ) ;



// Ievietot elementu trešajā pozīcijā

ķīmiskās vielas. atrašanās vieta ( sākt ( ķīmiskās vielas ) + 2 , 'Sērs' ) ;



cout << ' \n Galīgās ķīmiskās vielas:' << endl ;

priekš ( starpt i = 0 ; i < ķīmiskās vielas. Izmērs ( ) ; i ++ )

cout << ķīmiskās vielas [ i ] << endl ;

}

Izvade:

Tagad galīgajā vektorā ir pieci elementi (norādīts nākamajā ekrānuzņēmumā).

Paplašiniet vektoru, izmantojot Emplace_Back()

Elementu var pievienot (pievienojot vektora beigās), ko var izdarīt, izmantojot vektors::emplace_back() funkciju.

Sintakse:

vektors. emplace_back ( elements )

Ir obligāti jānodod vektoram pievienojamais elements kā parametrs.

Pievienosim divus elementus vienu pēc otra, izmantojot funkciju emplace_back().

#include

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - ķīmiskās vielas

vektors < virkne > ķīmiskās vielas = { 'Skābeklis' , 'CO' } ;

cout << 'Faktiskās ķīmiskās vielas:' << endl ;

priekš ( starpt i = 0 ; i < ķīmiskās vielas. Izmērs ( ) ; i ++ )

cout << ķīmiskās vielas [ i ] << endl ;



// Ievietojiet mangānu vektora beigās

ķīmiskās vielas. emplace_back ( 'Mangāns' ) ;



// Ievietojiet mangānu vektora beigās

ķīmiskās vielas. emplace_back ( 'Varš' ) ;





cout << ' \n Galīgās ķīmiskās vielas:' << endl ;

priekš ( starpt i = 0 ; i < ķīmiskās vielas. Izmērs ( ) ; i ++ )

cout << ķīmiskās vielas [ i ] << endl ;

}

Izvade:

Tagad galīgajā vektorā ir četri elementi pēc “mangāna” un “vara” pievienošanas.

Maksimālais vektora elements

  1. Izveidojiet vektoru ar dažiem elementiem.
  2. Lai atrastu maksimālo vektorā esošo elementu, izmantojiet funkciju *max_element(), kas pieņem divus iteratorus kā argumentus. Šie divi parametri darbojas kā diapazons, un maksimālais elements tiek atgriezts norādītajā diapazonā. Sākuma pozīcija ir begin () un pēdējā pozīcija ir end ().
* max_element ( pirmais_indekss, pēdējais_indekss )

Apskatīsim vektoru ar nosaukumu “item_costs”, kurā ir piecas veselu skaitļu tipa vērtības un kas atgriež maksimālo elementu.

#iekļaut

#include

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - item_costs

vektors < starpt > vienumu_izmaksas = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Preču izmaksas: \n ' ;

priekš ( starpt i = 0 ; i < vienumu_izmaksas. Izmērs ( ) ; i ++ )

cout << vienumu_izmaksas [ i ] << endl ;



// Atgriež maksimālo elementu no iepriekš minētā vektora - item_costs

cout << ' \n Maksimālās izmaksas: ' << * max_element ( sākt ( vienumu_izmaksas ) , beigas ( vienumu_izmaksas ) ) ;

}

Izvade:

Šeit 8900 ir maksimālais elements starp visiem elementiem, kas atrodas vektorā “item_costs”.

Minimālais vektora elements

  1. Izveidojiet vektoru ar dažiem elementiem.
  2. Lai atrastu vektorā esošo minimālo elementu, izmantojiet funkciju *min_element(), kas pieņem divus iteratorus kā argumentus. Šie divi parametri darbojas kā diapazons, un minimālais elements (mazāks nekā visi pārējie elementi) tiek atgriezts norādītajā diapazonā. Sākuma pozīcija ir begin () un pēdējā pozīcija ir end ().
* min_element ( pirmais_indekss, pēdējais_indekss )

Izmantojiet to pašu vektoru, kas ir izveidots, lai atrastu maksimālo elementu un atrastu minimālo elementu, izmantojot funkciju *min_element().

#iekļaut

#include

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - item_costs

vektors < starpt > vienumu_izmaksas = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Preču izmaksas: \n ' ;

priekš ( starpt i = 0 ; i < vienumu_izmaksas. Izmērs ( ) ; i ++ )

cout << vienumu_izmaksas [ i ] << endl ;



// Atgriež minimālo elementu no iepriekš minētā vektora - item_costs

cout << ' \n Minimālās izmaksas: ' << * min_element ( sākt ( vienumu_izmaksas ) , beigas ( vienumu_izmaksas ) ) ;

}

Izvade:

Šeit 200 ir minimālais elements starp visiem elementiem, kas atrodas vektorā “item_costs”.

Elementu summa vektorā

Lai atgrieztu visu vektorā esošo elementu summu, uzkrāt () tiek izmantota funkcija C++ STL. Tas pieņem trīs parametrus. Pirmais parametrs ņem pirmo indeksu, kas apzīmē sākuma elementu diapazonā (norādiet sākuma() iteratoru), bet otrais parametrs ņem pēdējo indeksu, kas apzīmē beigu elementu diapazonā (norādiet end() iteratoru). Visbeidzot, mums ir jānodod summas sākotnējā vērtība (mūsu gadījumā tā ir 0).

uzkrāties ( pirmais_indekss, pēdējais_indekss, sākuma_vērtība ) ;

Izveidojiet vektoru ar nosaukumu “item_costs” ar pieciem vesela skaitļa elementiem un aprēķiniet summu.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru - item_costs

vektors < starpt > vienumu_izmaksas = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Preču izmaksas: \n ' ;

priekš ( starpt i = 0 ; i < vienumu_izmaksas. Izmērs ( ) ; i ++ )

cout << vienumu_izmaksas [ i ] << endl ;



// Atgriež visu elementu summu iepriekš minētajā vektorā - item_costs

cout << ' \n Kopējās izmaksas: ' << uzkrāties ( sākt ( vienumu_izmaksas ) , beigas ( vienumu_izmaksas ) , 0 ) ;

}

Izvade:

Summa 8900, 5677, 200, 1000, 2300 ir 18077.

Divu vektoru elementārā reizināšana

  1. Izveidojiet divus vektorus ar skaitlisko tipu, un diviem vektoriem jābūt vienāda izmēra (kopējais elementu skaits pirmajā vektorā = kopējais elementu skaits, kas atrodas otrajā vektorā).
  2. Deklarējiet jaunu vektoru un izmantojiet cilpai , veiciet reizināšanas darbību diviem elementiem katrā iterācijā un saglabājiet vērtību izveidotajā vektorā, izmantojot funkciju push_back().
  3. priekš ( starpt itr = 0 ; i < pirmais_vec. Izmērs ( ) ; itr ++ )

    {

    rezultāts_vektors. atgrūst ( pirmais_vec [ itr ] * sec_thing [ itr ] ) ;

    }
  4. Parādiet elementus, kas atrodas iegūtajā vektorā, atkārtojot to.

Izveidojiet vektoru ar nosaukumu “item_costs” ar pieciem vesela skaitļa elementiem un aprēķiniet summu.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidojiet divus vektorus - produkti1 un produkti2 ar 5 elementiem katrā

vektors < starpt > produkti 1 = { 10 , divdesmit , 30 , 40 , piecdesmit } ;

vektors < starpt > produkti 2 = { piecdesmit , 40 , 30 , 70 , 60 } ;



vektors < starpt > rezultāts_produkti ;



// Veikt elementāro reizināšanu

priekš ( starpt i = 0 ; i < produkti 1. Izmērs ( ) ; i ++ ) {

rezultāts_produkti. atgrūst ( produkti 1 [ i ] * produkti 2 [ i ] ) ;

}



// Parādīt iegūto vektoru

cout << 'Vektoru reizināšana: \n ' ;

priekš ( starpt res : rezultāts_produkti )

cout << res << endl ;

}

Izvade:

Iterācija - 1 : 10 * piecdesmit => 500

Iterācija - 2 : divdesmit * 40 => 800

Iterācija - 3 : 30 * 30 => 900

Iterācija - 4 : 40 * 70 => 2800

Iterācija - 5 : piecdesmit * 60 => 3000

Divu vektoru punktu reizinājums

C++ vektoru gadījumā punktu reizinājums ir definēts kā “divu vektoru secību atbilstošo ierakstu reizinājumu summa”.

Sintakse:

iekšējais_produkts ( Vector1 vispirms, Vector1 pēdējais, Vector2 vispirms, Initial_Val )

Izmantojiet funkciju inner_product(), lai atgrieztu punktu preci. Šai funkcijai nepieciešami četri nepieciešamie parametri.

Šeit:

  1. Pirmais parametrs attiecas uz iteratoru, kas norāda uz pirmā vektora sākumu (norādiet, izmantojot funkciju begin ()).
  2. Otrais parametrs attiecas uz iteratoru, kas norāda uz pirmā vektora beigām (norādīt, izmantojot end() funkciju).
  3. Trešais parametrs attiecas uz iteratoru, kas norāda uz otrā vektora sākumu (norādiet, izmantojot funkciju begin ()).
  4. Sākotnējā vērtība ir jānodod kā pēdējais parametrs, kas ir vesels skaitlis punktu reizinājuma uzkrāšanai.

Izmantojiet to pašu programmu, kas ir izveidota divu vektoru reizināšanai, un izmantojiet funkciju innsr_product(), lai atrastu divu vektoru punktu reizinājumu.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidojiet divus vektorus - produkti1 un produkti2 ar 5 elementiem katrā

vektors < starpt > produkti 1 = { 10 , divdesmit , 30 , 40 , piecdesmit } ;

vektors < starpt > produkti 2 = { piecdesmit , 40 , 30 , 70 , 60 } ;



// Parādīt iegūto vektoru

cout << “Produktu 1 un produktu 2 punkts: ;

cout << iekšējais_produkts ( sākt ( produkti 1 ) , beigas ( produkti 1 ) , sāciet ( produkti 2 ) , 0 ) ;

}

Izvade:

( 10 * piecdesmit ) + ( divdesmit * 40 ) + ( 30 * 30 ) + ( 40 * 70 ) + ( piecdesmit * 60 )

=> 500 + 800 + 900 + 2800 + 3000

=> 8000

Pārvērtiet komplektu par vektoru

Ir daudzi veidi, kā pārvērst kopu vektorā, nododot vektorā visus komplektā izvirzītos elementus. Labākais un vienkāršākais veids ir izmantot funkciju std::copy().

Sintakse

std :: kopiju ( SourceIterator vispirms, sourceIterator pēdējais, destinationIterator pirmais )

Izmantojiet std::copy() funkcija, kas vektorā ievieto elementus no kopas. Tam nepieciešami trīs parametri.

Šeit:

  1. Pirmais parametrs attiecas uz avota iteratoru, kas norāda uz iteratora pirmo elementu. Šeit set ir avota iterators, kas norādīts, izmantojot funkciju begin ().
  2. Līdzīgi otrais parametrs norāda uz pēdējo elementu (funkcija end()).
  3. Trešais parametrs attiecas uz mērķa iteratoru, kas norāda uz pirmo elementu (norādīts, izmantojot funkciju begin()) iteratorā.

Izveidosim kopu ar pieciem studentiem un kopēsim visus elementus vektorā, izmantojot iepriekšējo funkciju.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidojiet komplektu - skolēni ar 5 elementiem

komplekts < virkne > studenti = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' } ;

cout << 'Iestatīt: \n ' ;

priekš ( stīga i : studenti )

cout << i << endl ;



// Izveidot vektoru — student_vcof izmērs vienāds ar kopas lielumu

vektors < virkne > students_vc ( studenti. Izmērs ( ) ) ;



// Ievietot elementus no kopas — studenti vektorā — students_vc.

kopiju ( studenti. sākt ( ) , studenti. beigas ( ) , students_vc. sākt ( ) ) ;



cout << ' \n Vektors: \n ' ;

priekš ( stīga i : students_vc )

cout << i << endl ;

}

Izvade:

Tagad visi elementi, kas atrodas komplektā “Students”, tiek kopēti vektorā “students_vc”.

Noņemiet dublētos elementus

  1. Pirmkārt, mums ir jākārto elementi vektorā tā, lai visi dublētie elementi būtu blakus viens otram, izmantojot std::šķirot() funkciju.
  2. std :: kārtot ( Vektors pirmais, vektors pēdējais ) ;
  3. Izmantojiet funkciju std::unique(), lai tiktu atlasīti elementu dublikāti. Vienlaikus izmantojiet funkciju erase(), lai noņemtu dublikātus, ko atgriež funkcija std::unique(). Elementu secība var mainīties gala vektorā.
  4. vektors. dzēst ( std :: unikāla ( Vektors pirmais, vektors pēdējais ) , Vector pēdējais ) )

Izveidojiet 'studentu' vektoru ar 10 elementiem un atgrieziet vektoru, noņemot dublikātus.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidojiet vektoru - skolēni ar 10 elementiem

vektors < virkne > studenti = { 'Sravan' , 'Bobby' , 'Madhu' , 'Meghana' , 'Lavanya' ,

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

cout << 'Studenti: \n ' ;

priekš ( stīga i : studenti )

cout << i << ' ' ;



// Kārtot visus elementus studentu vektorā.

kārtot ( sākt ( studenti ) , beigas ( studenti ) ) ;



// Izmantojiet unikālo () funkciju, lai noņemtu dublikātus ar funkciju erase ().

studenti. dzēst ( unikāla ( sākt ( studenti ) , beigas ( studenti ) ) , beigas ( studenti ) ) ;



cout << ' \n \n Unikālie studenti: \n ' ;

priekš ( auto itr = cbegin ( studenti ) ; itr ! = daži ( studenti ) ; ++ itr ) {

cout << * itr << ' ' ;

}

}

Izvade:

Tagad visi elementi vektorā ir unikāli.

Pārvērtiet vektoru komplektā

Iestatījums neatļauj dublēt elementus. Ja rakstāt, lai ievietotu vektoru kopā ar dublikātiem, tie tiks ignorēti. Mēs izmantojam to pašu funkciju std::copy(), kas tika izmantota iepriekšējā scenārijā, kas pārveidoja kopu par vektoru.

Šajā scenārijā:

  1. Pirmais parametrs izmanto vektoru kā avota iteratoru, kas tiek norādīts, izmantojot funkciju begin ().
  2. Otrais parametrs izmanto vektoru kā avota iteratoru, kas tiek norādīts, izmantojot end() funkciju.
  3. Nododiet funkciju std::inserter(), ko izmanto, lai automātiski pārrakstītu/kopētu elementus noteiktā kopas vietā, kā parametrus nodrošinot kopu un iteratoru, kas norāda uz kopas beigām.

Izveidosim vektoru ar 10 veseliem skaitļiem un kopēsim elementus kopā.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot kopu - atzīmes ar 10 vērtībām

vektors < starpt > atzīmes = { 12 , 3. 4 , 56 , 78 , 65 , 78 , 90 , 90 , 78 , 3. 4 } ;

cout << 'Vektors: \n ' ;

priekš ( starpt i : atzīmes )

cout << i << ' ' ;



// Izveidot kopu — atzīmju_kopa, kuras izmērs ir vienāds ar vektora izmēru

komplekts < starpt > marks_set ;



// Ievietot elementus no kopas — studenti vektorā — students_vc.

kopiju ( sākt ( atzīmes ) , beigas ( atzīmes ) , ievietotājs ( marks_set,beigas ( marks_set ) ) ) ;



cout << ' \n \n Iestatījums: \n ' ;

priekš ( starpt i : marks_set )

cout << i << ' ' ;

}

Izvade:

Esošajam vektoram ar nosaukumu “atzīmes” ir 10 vērtības. Pēc tā kopēšanas komplektā “marks_set” tajā ir tikai seši elementi, jo pārējie četri elementi tiek dublēti.

Noņemiet tukšās virknes

Nav izmantotas tukšas virknes, kas atrodas vektorā. Laba prakse ir noņemt vektorā esošās tukšās virknes. Apskatīsim, kā no C++ vektora noņemt tukšās virknes:

  1. Atkārtojiet vektoru, izmantojot cilpu “for”.
  2. Katrā iterācijā pārbaudiet, vai elements ir tukšs (“”) vai neizmanto operatoru “==” ar at() dalībnieka funkciju.
  3. Izmantojot funkciju std::erase(), noņemiet tukšās virknes pēc iepriekšējā nosacījuma pārbaudes.
  4. Atkārtojiet 2. un 3. darbību līdz vektora beigām.

Izveidosim vektoru “uzņēmumi” ar 10 virknēm. No tiem pieci ir tukši, un mēs tos noņemam, ieviešot iepriekšējo pieeju.

#include

#iekļaut

izmantojot nosaukumvieta std ;

galvenais ( ) {



vektors < virkne > kompānijas { 'Uzņēmums-A' , '' , 'Uzņēmums-B' ,

'' , 'Uzņēmums-C' , '' , 'Uzņēmums-D' , '' , '' , '' } ;



// Atkārtojiet uzņēmumus

// un noņemiet tukšos elementus, izmantojot erase ()

priekš ( starpt itr = 1 ; itr < kompānijas. Izmērs ( ) ; ++ itr ) {

ja ( kompānijas. plkst ( itr ) == '' ) {

kompānijas. dzēst ( kompānijas. sākt ( ) + itr ) ;

-- itr ;

}
}

// Parādīt vektoru


priekš ( auto & i : kompānijas ) {

cout << i << endl ;

}

}

Izvade:

Tagad vektorā “uzņēmumi” ir virknes, kas nav tukšas.

Teksta failā ierakstiet vektoru

Apspriedīsim, kā ierakstīt visus vektorā esošos elementus failā, izmantojot vektoru indeksus, izmantojot fstream .

  1. Pēc vektora inicializācijas ievietojiet tajā dažus elementus, izmantojot funkciju push_back.
  2. Izmantojiet funkciju open() no “fstream” bibliotēkas, kad režīms ir izslēgts.
  3. Pārvietojiet katru vektorā esošo elementu, izmantojot indeksus 'for' cilpā, un ierakstiet katru elementu nodrošinātajā failā.
  4. Visbeidzot aizveriet failu.

Ieviesīsim iepriekšējo pieeju, palaižot C++ kodu.

#iekļaut

#include

#include

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Izveidot vektoru — v_data

// un iespiediet tajā divus elementus.

vektors < virkne > v_data ;

v_data. atgrūst ( 'Laipni lūdzam' ) ;

v_data. atgrūst ( 'uz LinuxHint' ) ;

straume f ;



// Atveriet failu

f. atvērts ( 'written_file.txt' ,ios_base :: ārā ) ;

// Atkārtojiet katru vektora elementu un ierakstiet failā pa vienam.

priekš ( starpt i = 0 ; i < v_data. Izmērs ( ) ; i ++ )

{

f << v_data [ i ] << endl ;

}

// Aizveriet failu

f. aizveriet ( ) ;

}

Izvade:

Vektorā “v_data” ir divi elementi, un ceļā, kurā programma tiek izpildīta, tiek izveidots fails ar vektorā esošajiem elementiem.

Izveidojiet vektoru no teksta faila

Mēs uzzinājām, kā teksta failā ierakstīt elementus, kas atrodas vektorā. Šeit izveidosim vektoru no teksta failā esošā satura.

  1. Izveidojiet ' ifstream” mainīgais, ko izmanto, lai nolasītu informāciju no teksta faila, kurā mēs izveidojam vektoru no faila.
  2. Izveidojiet tukšu vektoru, lai saglabātu faila saturu, un izmantojiet tukšu virknes mainīgo kā karogu, lai pārbaudītu faila beigas.
  3. Izlasiet nākamo faila rindiņu, līdz tā sasniedz beigas (būtībā izmantojot cilpu “while”). Izmantojiet funkciju push_back(), lai nolasītu nākamo rindiņu un ievietotu to vektorā.
  4. Parādiet rindā esošo rindiņu atsevišķi, lai skatītu elementus, kas atrodas vektorā konsolē.

Ieviesīsim iepriekšējo pieeju, palaižot C++ kodu. Apskatīsim failu “data.txt” ar šādu saturu. Šeit vektora nosaukums ir “v_data”.

#include

izmantojot nosaukumvieta std ;

galvenais ( )

{

// Atveriet teksta failu - dati
ifstream fails ( 'data.txt' ) ;

// Izveidot vektoru — v_data tipa — virkne


vektors < virkne > v_data ;

siksna bija ;

// Lasiet nākamo rindiņu no faila data.txt
// līdz tas sasniedz beigas.


kamēr ( failu >> bija ) {

// Izlasiet nākamo rindiņu un ievadiet v_data

v_data. atgrūst ( bija ) ;

}



// Parādīt rindā esošo rindu atsevišķi.

kopiju ( v_data. sākt ( ) , v_data. beigas ( ) , ostream_iterator < virkne > ( cout , ' \n ' ) ) ;

}

Izvade:

Mēs redzam, ka “v_data” ir pieci elementi, kas iegūti no faila.

Secinājums

Šajā garajā rakstā mēs izpētījām visus iespējamos piemērus, kas tiek izmantoti reāllaika lietojumprogrammās, kas saistītas ar vektoriem C++ programmēšanas valodā. Katrs piemērs ir izskaidrots ar sintaksi, parametriem un piemērs ar izvadi. Katram kodam tiek pievienoti komentāri, lai iegūtu skaidru izpratni par kodu.