Vektor parov C++

Vektor Parov C



V C++ je vektor vsestranski vsebnik, ki si lahko dinamično spreminja velikost, kar omogoča učinkovito manipulacijo elementov. Medtem ko je par preprost vsebnik, ki lahko vsebuje dva heterogena predmeta, kar zagotavlja priročen način za povezovanje in upravljanje povezanih podatkov. Ko so ti pari organizirani znotraj vektorja, razvijalci pridobijo možnost ustvarjanja dinamičnih zbirk parov ključ-vrednost ali katere koli druge kombinacije dveh različnih elementov.

Ta podatkovna struktura je še posebej uporabna v scenarijih, kjer morajo biti elementi shranjeni kot pari, na primer pri obravnavanju parov ključ-vrednost ali pri predstavljanju odnosov med entitetami. V tem članku bomo raziskali koncept vektorja parov C++ in raziskali različne primere za ponazoritev njegove praktične uporabe.







Primer 1: Osnovna uporaba: ponavljanje vektorja parov

Oglejmo si osnovni primer, kjer ustvarimo vektor parov, ki predstavljajo imena učencev in njihovo ustrezno starost. Ponavljanje po vektorju parov je podobno ponavljanju po navadnem vektorju. Za pridobitev vsakega para znotraj vektorja lahko uporabimo bodisi iteratorje bodisi zanke 'za', ki temeljijo na obsegu.



Ta primer prikazuje sintakso za 'vektor parov' v smiselnem kontekstu.



#include
#include
#include

int main ( ) {

std::vector < std::par < std::string, int >> studentData;

studentData.push_back ( std::make_pair ( 'Adam' , dvajset ) ) ;
studentData.push_back ( std::make_pair ( 'račun' , 22 ) ) ;
studentData.push_back ( std::make_pair ( 'Charlie' , enaindvajset ) ) ;

std::cout << 'Podatki o študentu: \n ' ;
za ( const auto & študent : studentData ) {
std::cout << 'Ime:' << študent.prvi << ', Starost: ' << študent.drugi << std::endl;
}

vrnitev 0 ;
}


V tem izrezku kode C++ začnemo z vključitvijo treh bistvenih datotek glave: “ ” za vhodne in izhodne operacije, “” za uporabo vektorskega vsebnika in “” za dostop do “std:: par'. Te glave nam omogočajo uporabo funkcij, ki so bistvene za naš program.





Če se premaknemo naprej, znotraj funkcije main() deklariramo vektor z imenom »studentData« z uporabo vsebnika »std::vector«. Ta vektor je zasnovan za shranjevanje parov, pri čemer vsak par vsebuje ime učenca (predstavljeno kot »std::string«) in njihovo starost (celo število »int«). Nato vektor »studentData« napolnimo s tremi pari. S funkcijo »push_back« se pari dodajo na konec vektorja in dinamično prilagajajo njegovo velikost. Zanka se nato ponovi skozi »studentData«, ekstrahira in natisne ime in starost vsakega študenta. Izhod prikaže »Podatki študenta:«, ki poudarja strukturirano predstavitev. Imena in starost učencev so natisnjena ločeno, kar jasno prikazuje shranjene podatke.



Primer 2: Razvrščanje vektorja parov

Razvrščanje vektorja parov je običajna operacija, zlasti pri povezavah ključ-vrednost. V ta namen lahko uporabite funkcijo “std::sort” iz glave “ ”. Poglejmo, kako razvrstiti vektor parov na podlagi prvega in drugega elementa:

#include
#include
#include

int main ( ) {

std::vector < std::par < std::string, int >> informacije;

info.push_back ( std::make_pair ( 'Peter' , petnajst ) ) ;
info.push_back ( std::make_pair ( 'Dora' , 29 ) ) ;
info.push_back ( std::make_pair ( 'Hanna' , dvajset ) ) ;

std::cout << 'Izvirne informacije: \n ' ;
za ( const auto & vstop: info ) {
std::cout << 'Ime:' << vstop.prvi << ', Starost: ' << vstop.drugi << std::endl;
}


std::razvrsti ( info.začetek ( ) , info.konec ( ) ) ;

std::cout << ' \n Razvrščene informacije: \n ' ;
za ( const auto & vstop: info ) {
std::cout << 'Starost:' << vstop.drugi << ', Ime: ' << vstop.prvi << std::endl;
}

vrnitev 0 ;
}


V tem primeru kode C++ delamo z vektorjem parov za shranjevanje in obdelavo podatkov, povezanih s posamezniki, zlasti z njihovimi imeni in starostjo. V funkciji main() inicializiramo vektor z imenom 'info of pairs'. Nato ta vektor zapolnimo s tremi pari, od katerih vsak vsebuje ime in starost ločene osebe, pri čemer uporabimo funkcijo »push_back« in »std::make_pair« za učinkovito ustvarjanje parov.

Na konzolo izpišemo »Izvirne informacije«. To vključuje ponavljanje vektorja 'info' in tiskanje komponent vsakega para. Nato uporabimo algoritem »std::sort« za preureditev vektorja »info« na podlagi privzetega primerjalnega operaterja za pare, ki primerja prvi element vsakega para (v tem primeru imena). Po operaciji razvrščanja ponovno preletimo spremenjeni vektor 'info' tako, da natisnemo razvrščene informacije. Tokrat rezultat poudarja vrstni red po starosti, kar ponazarja rezultat postopka razvrščanja.

Primer 3: Kombinacija vektorjev različnih vrst

Morda boste naleteli na nekatere situacije, ko boste morali združiti informacije iz dveh vektorjev. Vektor parov lahko pomaga ohranjati povezavo med elementi iz obeh vektorjev.

#include
#include

int main ( ) {
std::vector < std::niz > mesta = { 'New York' , 'Pariz' , 'Tokio' } ;
std::vector < int > populacije = { 8175133 , 2140526 , 37435191 } ;

std::vector < std::par < std::string, int >> cityPopulationPairs;

za ( velikost_t i = 0 ; jaz < std::min ( mesta.velikost ( ) , populacije.velikost ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { mesta [ jaz ] , populacije [ jaz ] } ) ;
}

std::cout << 'Pari mesto-prebivalstvo:' << std::endl;
za ( const auto & par : cityPopulationPairs ) {
std::cout << 'Mesto:' << par.prvi << ', Prebivalstvo: ' << par.drugi << std::endl;
}

vrnitev 0 ;
}


V »glavni« funkciji kode sta deklarirana dva vektorja: »mesta« za shranjevanje imen mest in »prebivalstvo« za shranjevanje ustreznih vrednosti prebivalstva.

Tretji vektor, »cityPopulationPairs«, je definiran za shranjevanje parov mest in njihovega prebivalstva. Vsak par je »std::pair«, kjer »std::string« predstavlja ime mesta in »int« predstavlja prebivalstvo. Nato uporabimo iteracijo zanke »za« nad vektorji (mesta in prebivalstvo) z uporabo »std::min«, da zagotovimo, da zanka ne dostopa do elementov, ki presegajo manjšo od obeh velikosti vektorjev. Znotraj zanke se ustvarijo pari informacij o mestu in prebivalstvu, ki se dodajo vektorju »cityPopulationPairs«.

Po združitvi informacij se uporabi še ena zanka »za« za ponavljanje parov, ki so shranjeni v »cityPopulationPairs«. Združeni podatki so nato prikazani na standardnem izhodu z uporabo »std::cout«, ki jasno predstavlja vsako mesto in njegovo ustrezno populacijo.

Primer 4: Iskanje največje in najmanjše vrednosti

Identifikacija najmanjših in največjih vrednosti v naboru podatkov je pogosta zahteva pri algoritemskih in statističnih operacijah. Uporabimo lahko vektor parov, da sledimo največjim in najmanjšim vrednostim v zaporedju:

#include
#include
#include

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

std::vector < std::par < ti, ti >> minMaxPairs;

std::razvrsti ( številke.začetek ( ) , številke.konec ( ) ) ;

minMaxPairs.push_back ( { številke.spredaj ( ) , številke.nazaj ( ) } ) ;

std::cout << 'Pari najmanj-največ:' << std::endl;
za ( const auto & par: minMaxPairs ) {
std::cout << 'Min: ' << par.prvi << ', Max: ' << par.drugi << std::endl;
}

vrnitev 0 ;
}


Priložena koda C++ prikazuje postopek iskanja najmanjše in največje vrednosti v vektorju celih števil in nato shranjevanja teh vrednosti v vektorju parov. Vektor z imenom 'števila' je na začetku deklariran in inicializiran z nizom celih števil. Za učinkovito prepoznavanje najmanjših in največjih vrednosti v naboru podatkov program uporablja funkcijo »std::sort« iz knjižnice algoritmov.

Namen te funkcije je razporediti elemente v naraščajočem vrstnem redu, kar poenostavlja postopek prepoznavanja najmanjših in največjih vrednosti v naboru podatkov. Operacija razvrščanja se uporabi za vektor 'numbers' z uporabo numbers.begin() in numbers.end() kot parametrov obsega. Po koraku razvrščanja program ustvari vektor parov, 'minMaxPairs', za shranjevanje izračunanih najmanjših in največjih vrednosti. Funkcija »push_back« se nato uporabi za dodajanje enega samega para, ki vsebuje prvi (najmanjši) in zadnji (največji) element vektorja razvrščenih števil. Končno program izda rezultat s ponavljanjem skozi vektor 'minMaxPairs' in prikaže najmanjšo in največjo vrednost.

Zaključek

Na koncu se vektor parov C++ pojavi kot zmogljiva in prilagodljiva podatkovna struktura, ki programskim nalogam doda plast vsestranskosti. S podrobnim raziskovanjem sintakse in praktičnih aplikacij smo videli, kako ta vsebnik pomaga organizirati povezave ključ-vrednost, kombinirati informacije iz različnih vektorjev ter slediti najmanjšim in največjim vrednostim.