C++ vektor parova

C Vektor Parova



U C++-u, vektor je svestran spremnik koji može sam sebi dinamički mijenjati veličinu što omogućuje učinkovitu manipulaciju elementima. Dok je par jednostavan spremnik koji može držati dva heterogena objekta koji pruža prikladno sredstvo za povezivanje i upravljanje povezanim podacima. Kada su ti parovi organizirani unutar vektora, programeri dobivaju mogućnost stvaranja dinamičkih kolekcija parova ključ-vrijednost ili bilo koje druge kombinacije dva različita elementa.

Ova struktura podataka posebno je korisna u scenarijima u kojima se elementi moraju pohraniti kao parovi, kao što je rad s parovima ključ-vrijednost ili predstavljanje odnosa između entiteta. U ovom ćemo članku istražiti koncept C++ vektora parova i istražiti različite primjere za ilustraciju njegove praktične primjene.







Primjer 1: Osnovna upotreba: Ponavljanje preko vektora parova

Razmotrimo osnovni primjer u kojem stvaramo vektor parova koji predstavljaju imena učenika i njihovu odgovarajuću dob. Iteracija preko vektora parova je slična iteraciji preko regularnog vektora. Za dohvaćanje svakog para unutar vektora mogu se koristiti iteratori ili petlje 'for' koje se temelje na rasponu.



Ovaj primjer prikazuje sintaksu za 'vektor parova' u smislenom kontekstu.



#include
#uključi
#include

int glavni ( ) {

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

studentData.push_back ( std::napravi_par ( 'Adam' , dvadeset ) ) ;
studentData.push_back ( std::napravi_par ( 'Račun' , 22 ) ) ;
studentData.push_back ( std::napravi_par ( 'Charlie' , dvadeset i jedan ) ) ;

std::cout << 'Podaci o studentu: \n ' ;
za ( const auto i student : studentData ) {
std::cout << 'Ime: ' << učenik.prvi << ', Dob: ' << učenik.drugi << std::endl;
}

povratak 0 ;
}


U ovom C++ isječku koda počinjemo uključivanjem tri bitne datoteke zaglavlja: “ ” za ulazne i izlazne operacije, “” za korištenje vektorskog spremnika i “” za pristup “std:: par” predložak. Ova nam zaglavlja omogućuju korištenje funkcija koje su bitne za naš program.





Idemo dalje, unutar funkcije main(), deklariramo vektor pod nazivom 'studentData' koristeći spremnik 'std::vector'. Ovaj je vektor dizajniran za pohranjivanje parova gdje svaki par sadrži ime učenika (predstavljeno kao 'std::string') i njihovu dob (cijeli broj 'int'). Zatim popunjavamo vektor 'studentData' s tri para. Pomoću funkcije “push_back” parovi se dodaju na kraj vektora, dinamički prilagođavajući njegovu veličinu. Petlja zatim prolazi kroz 'studentData', izdvajajući i ispisujući ime i dob svakog učenika. Izlaz prikazuje 'Student Data:' koji naglašava strukturirani prikaz. Imena i dob učenika ispisuju se odvojeno, jasno prikazujući pohranjene podatke.



Primjer 2: Sortiranje vektora parova

Sortiranje vektora parova uobičajena je operacija, posebno kada se radi o asocijacijama ključ-vrijednost. U tu svrhu može se koristiti funkcija “std::sort” iz zaglavlja “ ”. Pogledajmo kako sortirati vektor parova na temelju prvog i drugog elementa:

#include
#uključi
#include

int glavni ( ) {

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

info.push_back ( std::napravi_par ( 'Petar' , petnaest ) ) ;
info.push_back ( std::napravi_par ( 'Dora' , 29 ) ) ;
info.push_back ( std::napravi_par ( 'Hanna' , dvadeset ) ) ;

std::cout << 'Izvorne informacije: \n ' ;
za ( const auto i unos : info ) {
std::cout << 'Ime: ' << ulazak.prvi << ', Dob: ' << ulazak.drugi << std::endl;
}


std::sort ( info.početi ( ) , info.kraj ( ) ) ;

std::cout << ' \n Razvrstane informacije: \n ' ;
za ( const auto i unos : info ) {
std::cout << 'Dob: ' << ulazak.drugi << ', Ime: ' << ulazak.prvi << std::endl;
}

povratak 0 ;
}


U ovom primjeru C++ koda, radimo s vektorom parova za pohranu i manipuliranje podacima koji se odnose na pojedince, posebno njihova imena i godine. Inicijaliziramo vektor pod nazivom 'info of pairs' unutar funkcije main(). Nakon toga, ovaj vektor popunjavamo s tri para, od kojih svaki sadrži ime i dob različite osobe, koristeći funkciju 'push_back' i 'std::make_pair' za učinkovito stvaranje para.

Izbacujemo 'Originalne informacije' na konzolu. To uključuje ponavljanje kroz vektor 'info' i ispis komponenti svakog para. Zatim koristimo algoritam 'std::sort' za preuređivanje vektora 'info' na temelju zadanog operatora usporedbe za parove koji uspoređuje prvi element svakog para (u ovom slučaju, imena). Nakon operacije sortiranja, ponovno prolazimo kroz modificirani vektor 'info' ispisivanjem sortiranih informacija. Ovaj put rezultat naglašava redoslijed prema dobi, ilustrirajući rezultat procesa sortiranja.

Primjer 3: Kombiniranje vektora različitih vrsta

Možete se susresti s nekim situacijama u kojima morate kombinirati informacije iz dva vektora. Vektor parova može pomoći u održavanju povezanosti između elemenata iz dva vektora.

#include
#uključi

int glavni ( ) {
std::vektor < std::string > gradovi = { 'New York' , 'Pariz' , 'Tokio' } ;
std::vektor < int > populacije = { 8175133 , 2140526 , 37435191 } ;

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

za ( veličina_t i = 0 ; ja < std::min ( gradovi.veličina ( ) , populacije.veličina ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { gradovima [ ja ] , populacije [ ja ] } ) ;
}

std::cout << 'Parovi grad-stanovništvo:' << std::endl;
za ( const auto i par : gradPopulationPairs ) {
std::cout << 'Grad: ' << par.prvi << ', Populacija: ' << par.drugi << std::endl;
}

povratak 0 ;
}


U 'glavnoj' funkciji koda deklarirana su dva vektora: 'gradovi' za pohranjivanje imena gradova i 'stanovništvo' za pohranjivanje odgovarajućih vrijednosti stanovništva.

Treći vektor, “cityPopulationPairs”, definiran je za pohranjivanje parova gradova i njihove populacije. Svaki par je “std::pair” gdje “std::string” predstavlja ime grada, a “int” predstavlja stanovništvo. Zatim koristimo iteraciju petlje 'for' preko vektora (gradovi i stanovništvo) koristeći 'std::min' kako bismo osigurali da petlja ne pristupa elementima izvan manje od dvije veličine vektora. Unutar petlje kreiraju se parovi informacija o broju stanovnika grada i dodaju vektoru “cityPopulationPairs”.

Nakon kombiniranja informacija, koristi se još jedna petlja 'for' za ponavljanje kroz parove koji su pohranjeni u 'cityPopulationPairs'. Kombinirani podaci se zatim prikazuju na standardnom izlazu koristeći 'std::cout', jasno predstavljajući svaki grad i njegovu odgovarajuću populaciju.

Primjer 4: Pronalaženje maksimalne i minimalne vrijednosti

Identificiranje minimalnih i maksimalnih vrijednosti unutar skupa podataka uobičajeni je zahtjev u algoritamskim i statističkim operacijama. Možemo koristiti vektor parova kako bismo pratili maksimalne i minimalne vrijednosti u nizu:

#include
#uključi
#include

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

std::vektor < std::par < ti ti >> minMaxPairs;

std::sort ( brojevi.početi ( ) , brojevi.kraj ( ) ) ;

minMaxPairs.push_back ( { brojevi.sprijeda ( ) , brojevi.natrag ( ) } ) ;

std::cout << 'Min-Max parovi:' << std::endl;
za ( const auto i par : minMaxPairs ) {
std::cout << 'Min: ' << par.prvi << ', Max: ' << par.drugi << std::endl;
}

povratak 0 ;
}


Navedeni C++ kod demonstrira postupak pronalaženja minimalnih i maksimalnih vrijednosti u vektoru cijelih brojeva i zatim pohranjivanje tih vrijednosti u vektor parova. Vektor pod nazivom 'brojevi' inicijalno se deklarira i inicijalizira sa skupom cijelih brojeva. Za učinkovito identificiranje minimalnih i maksimalnih vrijednosti u skupu podataka, program koristi funkciju 'std::sort' iz biblioteke algoritama.

Ova funkcija ima za cilj rasporediti elemente uzlaznim redoslijedom, pojednostavljujući postupak identifikacije minimalnih i maksimalnih vrijednosti u skupu podataka. Operacija sortiranja primjenjuje se na vektor 'brojeva' koristeći numbers.begin() i numbers.end() kao parametre raspona. Nakon koraka sortiranja, program stvara vektor parova, 'minMaxPairs', za pohranjivanje izračunatih minimalnih i maksimalnih vrijednosti. Funkcija 'push_back' zatim se koristi za dodavanje jednog para koji sadrži prvi (minimum) i zadnji (maksimum) elemente vektora sortiranih brojeva. Na kraju, program daje rezultat iteracijom kroz vektor 'minMaxPairs' i prikazivanjem minimalne i maksimalne vrijednosti.

Zaključak

Zaključno, C++ vektor parova pojavljuje se kao snažna i fleksibilna struktura podataka, dodajući sloj svestranosti programskim zadacima. Detaljnim istraživanjem njegove sintakse i praktičnih primjena, vidjeli smo kako ovaj spremnik pomaže organizirati asocijacije ključ-vrijednost, kombinirati informacije iz različitih vektora i pratiti minimalne i maksimalne vrijednosti.