C++ Vector de perechi

C Vector De Perechi



În C++, un vector este un container versatil care se poate redimensiona dinamic, ceea ce permite manipularea eficientă a elementelor. În timp ce o pereche este un container simplu care poate conține două obiecte eterogene, ceea ce oferă un mijloc convenabil de a asocia și gestiona datele aferente. Atunci când aceste perechi sunt organizate într-un vector, dezvoltatorii câștigă capacitatea de a crea colecții dinamice de perechi cheie-valoare sau orice altă combinație de două elemente distincte.

Această structură de date este utilă în special în scenariile în care elementele trebuie stocate ca perechi, cum ar fi atunci când se ocupă de perechi cheie-valoare sau reprezintă relațiile dintre entități. În acest articol, vom explora conceptul de vector C++ de perechi și vom explora diferitele exemple pentru a ilustra aplicațiile sale practice.







Exemplul 1: Utilizare de bază: Iterarea peste un vector de perechi

Să luăm în considerare un exemplu de bază în care creăm un vector de perechi care reprezintă numele elevilor și vârstele corespunzătoare. Iterarea peste un vector de perechi este similară cu iterarea peste un vector obișnuit. Se pot folosi fie iteratoare, fie bucle „for” bazate pe intervale pentru a prelua fiecare pereche din vector.



Acest exemplu prezintă sintaxa pentru un „vector de perechi” într-un context semnificativ.



#include
#include
#include

int principal ( ) {

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

studentData.push_back ( std::make_pair ( 'Adam' , douăzeci ) ) ;
studentData.push_back ( std::make_pair ( 'Factură' , 22 ) ) ;
studentData.push_back ( std::make_pair ( 'Charlie' , douăzeci și unu ) ) ;

std::cout << „Datele elevilor: \n ' ;
pentru ( const auto & student : studentData ) {
std::cout << 'Nume: ' << student.în primul rând << ', Varsta: ' << student.a doua << std::endl;
}

întoarcere 0 ;
}


În acest fragment de cod C++, începem prin a include trei fișiere de antet esențiale: „ ” pentru operațiuni de intrare și ieșire, „” pentru a utiliza containerul vector și „” pentru a accesa „std:: pereche”. Aceste anteturi ne permit să folosim funcționalitățile esențiale pentru programul nostru.





Mergând mai departe, în cadrul funcției main(), declarăm un vector numit „studentData” folosind containerul „std::vector”. Acest vector este conceput pentru a stoca perechile în care fiecare pereche încapsulează numele unui elev (reprezentat ca „std::string”) și vârsta lor (un întreg „int”). Apoi, populăm vectorul „studentData” cu trei perechi. Folosind funcția „push_back”, perechile sunt adăugate la sfârșitul vectorului, ajustând dinamic dimensiunea acestuia. Apoi, o buclă iterează prin „studentData”, extragând și imprimând numele și vârsta fiecărui student. Ieșirea afișează „Date student:” care subliniază reprezentarea structurată. Numele și vârstele elevilor sunt tipărite separat, prezentând clar datele stocate.



Exemplul 2: Sortarea unui vector de perechi

Sortarea unui vector de perechi este o operație obișnuită, mai ales atunci când se ocupă de asocieri cheie-valoare. Funcția „std::sort” din antetul „ ” poate fi utilizată în acest scop. Să vedem cum să sortăm un vector de perechi pe baza primului și al doilea element:

#include
#include
#include

int principal ( ) {

std::vector < std::pereche < std::string, int >> info;

info.push_back ( std::make_pair ( 'Petru' , cincisprezece ) ) ;
info.push_back ( std::make_pair ( 'Dora' , 29 ) ) ;
info.push_back ( std::make_pair ( 'Hanna' , douăzeci ) ) ;

std::cout << „Informații originale: \n ' ;
pentru ( const auto & intrare: info ) {
std::cout << 'Nume: ' << intrare.în primul rând << ', Varsta: ' << intrare.a doua << std::endl;
}


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

std::cout << ' \n Informații sortate: \n ' ;
pentru ( const auto & intrare: info ) {
std::cout << 'Vârsta:' << intrare.a doua << ', Nume: ' << intrare.în primul rând << std::endl;
}

întoarcere 0 ;
}


În acest exemplu de cod C++, lucrăm cu un vector de perechi pentru a stoca și manipula datele referitoare la indivizi, în special numele și vârstele acestora. Inițializam un vector numit „info de perechi” în cadrul funcției main(). Ulterior, populăm acest vector cu trei perechi, fiecare conținând numele și vârsta unei persoane distincte, utilizând funcția „push_back” și „std::make_pair” pentru crearea eficientă a perechii.

Trimitem „Informațiile originale” în consolă. Aceasta implică iterarea prin vectorul „informații” și tipărirea componentelor fiecărei perechi. Apoi, folosim algoritmul „std::sort” pentru a rearanja vectorul „info” pe baza operatorului de comparare implicit pentru perechi care compară primul element al fiecărei perechi (în acest caz, numele). În urma operației de sortare, iterăm din nou prin vectorul „info” modificat prin imprimarea informațiilor sortate. De această dată, rezultatul subliniază ordinea în funcție de vârstă, ilustrând rezultatul procesului de sortare.

Exemplul 3: Combinarea vectorilor de diferite tipuri

S-ar putea să întâlniți unele situații în care trebuie să combinați o informație din doi vectori. Un vector de perechi poate ajuta la menținerea asocierii dintre elementele din cei doi vectori.

#include
#include

int principal ( ) {
std::vector < std::string > orase = { 'New York' , 'Paris' , 'Tokio' } ;
std::vector < int > populatii = { 8175133 , 2140526 , 37435191 } ;

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

pentru ( dimensiune_t i = 0 ; i < std::min ( orașe.dimensiune ( ) , populatii.dimensiunea ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { orase [ i ] , populaţiile [ i ] } ) ;
}

std::cout << „Perechi oraș-populație:” << std::endl;
pentru ( const auto & pereche : cityPopulationPairs ) {
std::cout << 'Oraș: ' << pereche.în primul rând << ', Populație: ' << pereche.a doua << std::endl;
}

întoarcere 0 ;
}


În funcția „principală” a codului, sunt declarați doi vectori: „orașe” pentru a stoca numele orașelor și „populații” pentru a stoca valorile corespunzătoare ale populației.

Un al treilea vector, „cityPopulationPairs”, este definit pentru a stoca perechile de orașe și populațiile lor respective. Fiecare pereche este „std::pair”, unde „std::string” reprezintă numele orașului și „int” reprezintă populația. Apoi folosim o iterație de buclă „for” peste vectori (orașe și populații) folosind „std::min” pentru a ne asigura că bucla nu accesează elementele dincolo de cea mai mică dintre cele două dimensiuni de vector. În interiorul buclei, perechile de informații despre oraș-populație sunt create și atașate vectorului „cityPopulationPairs”.

După combinarea informațiilor, o altă buclă „for” este folosită pentru a itera perechile care sunt stocate în „cityPopulationPairs”. Datele combinate sunt apoi afișate pe rezultatul standard folosind „std::cout”, reprezentând clar fiecare oraș și populația corespunzătoare.

Exemplul 4: Găsirea valorilor maxime și minime

Identificarea valorilor minime și maxime într-un set de date este o cerință comună în operațiunile algoritmice și statistice. Putem folosi un vector de perechi pentru a urmări atât valorile maxime, cât și minime dintr-o secvență:

#include
#include
#include

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

std::vector < std::pereche < tu tu >> minMaxPairs;

std::sort ( numere.începe ( ) , numere.sfârşit ( ) ) ;

minMaxPairs.push_back ( { numere.faţă ( ) , numere.înapoi ( ) } ) ;

std::cout << „Perechi Min-Max:” << std::endl;
pentru ( const auto & pereche: minMaxPairs ) {
std::cout << 'Min:' << pereche.în primul rând << ', Max: ' << pereche.a doua << std::endl;
}

întoarcere 0 ;
}


Codul C++ furnizat demonstrează procesul de găsire a valorilor minime și maxime într-un vector de numere întregi și apoi stocarea acestor valori într-un vector de perechi. Un vector numit „numere” este inițial declarat și inițializat cu un set de numere întregi. Pentru a identifica eficient valorile minime și maxime din setul de date, programul utilizează funcția „std::sort” din biblioteca de algoritmi.

Această funcție are ca scop aranjarea elementelor în ordine crescătoare, simplificând procesul de identificare atât a valorilor minime, cât și a celor maxime din setul de date. Operația de sortare este aplicată vectorului „numbers” folosind numbers.begin() și numbers.end() ca parametri de interval. În urma pasului de sortare, programul creează un vector de perechi, „minMaxPairs”, pentru a stoca valorile minime și maxime calculate. Funcția „push_back” este apoi folosită pentru a adăuga o singură pereche care conține primul (minimum) și ultimul (maxim) elemente ale vectorului de numere sortate. În cele din urmă, programul scoate rezultatul prin iterarea prin vectorul „minMaxPairs” și afișând valorile minime și maxime.

Concluzie

În concluzie, vectorul de perechi C++ apare ca o structură de date puternică și flexibilă, adăugând un strat de versatilitate sarcinilor de programare. Printr-o explorare detaliată a sintaxei și a aplicațiilor sale practice, am văzut cum acest container ajută la organizarea asocierilor cheie-valoare, combina informațiile din diferiți vectori și urmărește valorile minime și maxime.