C++ paaride vektor

C Paaride Vektor



C++ keeles on vektor mitmekülgne konteiner, mis suudab enda suurust dünaamiliselt muuta, mis võimaldab elementidega tõhusalt manipuleerida. Kuigi paar on lihtne konteiner, mis mahutab kahte heterogeenset objekti, mis pakub mugavat vahendit seotud andmete seostamiseks ja haldamiseks. Kui need paarid on korraldatud vektoris, saavad arendajad võimaluse luua võtme-väärtuste paaride dünaamilisi kogusid või mis tahes muud kahe erineva elemendi kombinatsiooni.

See andmestruktuur on eriti kasulik stsenaariumide puhul, kus elemente tuleb salvestada paaridena, näiteks võtme-väärtuste paaride käsitlemisel või olemite vaheliste suhete esitamisel. Selles artiklis uurime paaride C++ vektori kontseptsiooni ja uurime erinevaid näiteid selle praktiliste rakenduste illustreerimiseks.







Näide 1: Põhikasutus: itereerimine paaride vektoriga

Vaatleme põhinäidet, kus loome paaride vektori, mis esindab õpilaste nimesid ja nende vastavaid vanuseid. Paaride vektori itereerimine on sarnane tavalise vektori itereerimisega. Iga paari vektoris leidmiseks võib kasutada kas iteraatoreid või vahemikupõhiseid 'for' silmuseid.



See näide tutvustab 'paaride vektori' süntaksit tähendusrikkas kontekstis.



#include
#include
#include

int main ( ) {

std::vektor < std::pair < std::string, int >> üliõpilasandmed;

studentData.push_back ( std::make_pair ( 'Adam' , kakskümmend ) ) ;
studentData.push_back ( std::make_pair ( 'Arve' , 22 ) ) ;
studentData.push_back ( std::make_pair ( 'Charlie' , kakskümmend üks ) ) ;

std::cout << 'Õpilaste andmed: \n ' ;
jaoks ( const auto & õpilane : studentData ) {
std::cout << 'Nimi:' << üliõpilane.kõigepealt << ', Vanus: ' << õpilane.teine << std::endl;
}

tagasi 0 ;
}


Sellesse C++ koodilõiku lisame alustuseks kolm olulist päisefaili: ' ' sisend- ja väljundtoimingute jaoks, '' vektori konteineri kasutamiseks ja '', et pääseda juurde failile 'std:: paar” malli. Need päised võimaldavad meil kasutada meie programmi jaoks olulisi funktsioone.





Edasi liikudes deklareerime funktsiooni main() sees vektori nimega 'studentData', kasutades konteinerit 'std::vector'. See vektor on loodud paaride salvestamiseks, kus iga paar sisaldab õpilase nime (esitatud kui 'std::string') ja tema vanust ('int' täisarv). Seejärel täidame vektori „studentData” kolme paariga. Funktsiooni 'push_back' abil lisatakse paarid vektori lõppu, kohandades dünaamiliselt selle suurust. Seejärel itereerub tsükkel läbi „studentData”, eraldades ja printides iga õpilase nime ja vanuse. Väljundis kuvatakse „Õpilaste andmed:”, mis rõhutab struktureeritud esitust. Õpilaste nimed ja vanused trükitakse eraldi, esitades selgelt salvestatud andmed.



Näide 2: Paaride vektori sortimine

Paaride vektori sortimine on tavaline toiming, eriti võtme-väärtuste seoste käsitlemisel. Selleks saab kasutada päises „ ” olevat funktsiooni „std::sort”. Vaatame, kuidas sorteerida paaride vektorit esimese ja teise elemendi põhjal:

#include
#include
#include

int main ( ) {

std::vektor < std::pair < std::string, int >> info;

info.push_back ( std::make_pair ( 'Peeter' , viisteist ) ) ;
info.push_back ( std::make_pair ( 'Dora' , 29 ) ) ;
info.push_back ( std::make_pair ( 'Hanna' , kakskümmend ) ) ;

std::cout << 'Algne teave: \n ' ;
jaoks ( const auto & sissekanne: info ) {
std::cout << 'Nimi:' << sisenemine.esimene << ', Vanus: ' << sissekanne.teine << std::endl;
}


std::sort ( info.begin ( ) , info.end ( ) ) ;

std::cout << ' \n Sorteeritud teave: \n ' ;
jaoks ( const auto & sissekanne: info ) {
std::cout << 'Vanus:' << sissekanne.teine << ', nimi: ' << sisenemine.esimene << std::endl;
}

tagasi 0 ;
}


Selles C++ koodinäites töötame me paaride vektoriga, et salvestada ja töödelda üksikisikutega seotud andmeid, täpsemalt nende nimesid ja vanust. Initsialiseerime vektori nimega 'info of pairs' funktsiooni main() sees. Seejärel täidame selle vektori kolme paariga, millest igaüks sisaldab konkreetse isiku nime ja vanust, kasutades tõhusaks paaride loomiseks funktsiooni 'push_back' ja 'std::make_pair'.

Väljastame konsooli 'Algne teave'. See hõlmab infovektori itereerimist ja iga paari komponentide printimist. Seejärel kasutame 'std::sort' algoritmi, et korraldada 'info' vektor ümber paaride vaikevõrdlusoperaatori alusel, mis võrdleb iga paari esimest elementi (antud juhul nimesid). Pärast sortimistoimingut itereerime uuesti läbi muudetud 'info' vektori, trükkides sorteeritud teabe. Seekord rõhutatakse väljundis vanusepõhist järjestamist, illustreerides sorteerimisprotsessi tulemust.

Näide 3: Erinevat tüüpi vektorite kombineerimine

Teil võib tekkida olukordi, kus peate ühendama teabe kahest vektorist. Paaride vektor võib aidata säilitada seost kahe vektori elementide vahel.

#include
#include

int main ( ) {
std::vektor < std::string > linnad = { 'New York' , 'Pariis' , 'Tokyo' } ;
std::vektor < int > populatsioonid = { 8175133 , 2140526 , 37435191 } ;

std::vektor < std::pair < std::string, int >> linn Rahvastikupaarid;

jaoks ( suurus_t i = 0 ; i < std::min ( linnad.suurus ( ) , populatsioonid.suurus ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { linnad [ i ] , populatsioonid [ i ] } ) ;
}

std::cout << 'Linna ja rahvastiku paarid:' << std::endl;
jaoks ( const auto & paar : linn Rahvastikupaarid ) {
std::cout << 'Linn:' << paar.esimene << ', Rahvaarv: ' << paar.teine << std::endl;
}

tagasi 0 ;
}


Koodi põhifunktsioonis deklareeritakse kaks vektorit: linnad linnanimede salvestamiseks ja populatsioonid vastavate populatsiooni väärtuste salvestamiseks.

Kolmas vektor, 'cityPopulationPairs', on määratletud linnade paaride ja nende vastavate populatsioonide salvestamiseks. Iga paar on 'std::pair', kus 'std::string' tähistab linna nime ja 'int' tähistab elanikkonda. Seejärel kasutame vektorite (linnade ja populatsioonide) tsükli iteratsiooni 'for' kasutades 'std::min', et tagada, et silmus ei pääseks juurde elementidele, mis on kahest vektori suurusest väiksemad. Silmuse sees luuakse linna-rahvastiku teabe paarid ja lisatakse need vektorile „cityPopulationPairs”.

Pärast teabe kombineerimist kasutatakse teist 'for' tsüklit, et itereerida läbi 'cityPopulationPairs' salvestatud paaride. Kombineeritud andmed kuvatakse seejärel standardväljundis, kasutades 'std::cout', mis näitab selgelt iga linna ja selle vastavat elanikkonda.

Näide 4: Maksimaalse ja minimaalse väärtuse leidmine

Minimaalsete ja maksimaalsete väärtuste tuvastamine andmekogumis on algoritmiliste ja statistiliste toimingute puhul tavaline nõue. Saame kasutada paaride vektorit, et jälgida nii jada maksimaalseid kui ka minimaalseid väärtusi:

#include
#include
#include

int main ( ) {
std::vektor < int > numbrid = { 5 , 12 , 18 , 3 , 7 , 4 , 33 } ;

std::vektor < std::pair < sina, sina >> minMaxPairs;

std::sort ( numbrid.algus ( ) , numbrid.lõpp ( ) ) ;

minMaxPairs.push_back ( { numbrid.ees ( ) , numbrid.tagasi ( ) } ) ;

std::cout << 'Min-Max paarid:' << std::endl;
jaoks ( const auto & paar: minMaxPairs ) {
std::cout << 'Min:' << paar.esimene << ', Max: ' << paar.teine << std::endl;
}

tagasi 0 ;
}


Esitatud C++ kood demonstreerib täisarvude vektorist minimaalsete ja maksimaalsete väärtuste leidmise protsessi ning seejärel nende väärtuste salvestamist paaride vektorisse. Vektor nimega 'numbrid' deklareeritakse algselt ja initsialiseeritakse täisarvude komplektiga. Andmestiku minimaalse ja maksimaalse väärtuse tõhusaks tuvastamiseks kasutab programm algoritmi teegi funktsiooni 'std::sort'.

Selle funktsiooni eesmärk on korraldada elemendid kasvavas järjekorras, lihtsustades nii minimaalse kui ka maksimaalse väärtuse tuvastamist andmekogus. Sorteerimistoimingut rakendatakse 'numbrite' vektorile, kasutades vahemiku parameetritena numbers.begin() ja numbers.end(). Pärast sortimisetappi loob programm paaride vektori 'minMaxPairs', et salvestada arvutatud miinimum- ja maksimumväärtused. Funktsiooni 'tagasitõuke' kasutatakse seejärel ühe paari lisamiseks, mis sisaldab sorditud numbrite vektori esimest (minimaalne) ja viimane (maksimaalne) elementi. Lõpuks väljastab programm tulemuse, itereerides läbi 'minMaxPairs' vektori ja kuvades minimaalse ja maksimaalse väärtuse.

Järeldus

Kokkuvõttes tuleb paaride C++ vektor esile võimsa ja paindliku andmestruktuurina, mis lisab programmeerimisülesannetele mitmekülgsuse kihi. Selle süntaksi ja praktiliste rakenduste üksikasjaliku uurimise kaudu oleme näinud, kuidas see konteiner aitab korraldada võtme-väärtuste seoseid, kombineerida erinevatest vektoritest pärinevat teavet ning jälgida minimaalseid ja maksimaalseid väärtusi.