C++ vektor af par

C Vektor Af Par



I C++ er en vektor en alsidig beholder, der dynamisk kan ændre størrelsen på sig selv, hvilket giver mulighed for effektiv manipulation af elementer. Mens et par er en simpel beholder, der kan rumme to heterogene objekter, hvilket giver et praktisk middel til at associere og administrere de relaterede data. Når disse par er organiseret i en vektor, får udviklerne muligheden for at skabe de dynamiske samlinger af nøgleværdi-par eller enhver anden kombination af to forskellige elementer.

Denne datastruktur er især nyttig i scenarier, hvor elementerne skal gemmes som par, f.eks. når der er tale om nøgleværdi-par eller repræsenterer relationerne mellem enheder. I denne artikel vil vi udforske konceptet med en C++ vektor af par og udforske de forskellige eksempler for at illustrere dens praktiske anvendelser.







Eksempel 1: Grundlæggende brug: Iteration over en vektor af par

Lad os overveje et grundlæggende eksempel, hvor vi opretter en vektor af par, der repræsenterer elevernes navne og deres tilsvarende alder. Iteration over en vektor af par svarer til iteration over en regulær vektor. Man kan anvende enten iteratorerne eller områdebaserede 'for'-løkker til at hente hvert par i vektoren.



Dette eksempel viser syntaksen for en 'vektor af par' i en meningsfuld kontekst.



#include
#inkluder
#include

int main ( ) {

std::vektor < std::par < std::streng, int >> elevdata;

studentData.push_back ( std::make_pair ( 'Adam' , tyve ) ) ;
studentData.push_back ( std::make_pair ( 'Regning' , 22 ) ) ;
studentData.push_back ( std::make_pair ( 'Charlie' , enogtyve ) ) ;

std::cout << 'Studentdata: \n ' ;
til ( const auto & elev : elevdata ) {
std::cout << 'Navn: ' << elev.først << ', Alder: ' << elev.sekund << std::endl;
}

Vend tilbage 0 ;
}


I dette C++-kodestykke begynder vi med at inkludere tre essentielle header-filer: ' ' til input- og outputoperationer, '' for at bruge vektorbeholderen og '' for at få adgang til 'std::: par” skabelon. Disse overskrifter gør det muligt for os at bruge de funktioner, der er essentielle for vores program.





Fremover, inden for main()-funktionen, erklærer vi en vektor ved navn 'studentData' ved hjælp af 'std::vector'-beholderen. Denne vektor er designet til at gemme parrene, hvor hvert par indkapsler en elevs navn (repræsenteret som en 'std::streng') og deres alder (et 'int' heltal). Derefter udfylder vi 'studentData' vektoren med tre par. Ved hjælp af 'push_back'-funktionen tilføjes par til slutningen af ​​vektoren, der dynamisk justerer dens størrelse. En løkke gentager derefter 'studentData', udtrækker og udskriver hver elevs navn og alder. Outputtet viser 'Student Data:', som understreger den strukturerede repræsentation. Elevnavne og -aldre udskrives separat og viser de lagrede data tydeligt.



Eksempel 2: Sortering af en vektor af par

Sortering af en vektor af par er en almindelig operation, især når man beskæftiger sig med nøgle-værdi associationer. Funktionen 'std::sort' fra ' '-headeren kan bruges til dette formål. Lad os se, hvordan man sorterer en vektor af par baseret på det første og andet element:

#include
#inkluder
#include

int main ( ) {

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

info.push_back ( std::make_pair ( 'Peter' , femten ) ) ;
info.push_back ( std::make_pair ( 'Dora' , 29 ) ) ;
info.push_back ( std::make_pair ( 'Hanna' , tyve ) ) ;

std::cout << 'Original information: \n ' ;
til ( const auto & indgang: info ) {
std::cout << 'Navn: ' << indgang.først << ', Alder: ' << entry.second << std::endl;
}


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

std::cout << ' \n Sorteret information: \n ' ;
til ( const auto & indgang: info ) {
std::cout << 'Alder:' << entry.second << ', Navn: ' << indgang.først << std::endl;
}

Vend tilbage 0 ;
}


I dette C++ kodeeksempel arbejder vi med en vektor af par for at gemme og manipulere data relateret til individer, specifikt deres navne og alder. Vi initialiserer en vektor ved navn 'info af par' i main()-funktionen. Efterfølgende udfylder vi denne vektor med tre par, der hver indeholder navnet og alderen på en særskilt person, ved at bruge 'push_back'-funktionen og 'std::make_pair' til effektiv paroprettelse.

Vi udsender 'Original Information' til konsollen. Dette involverer iteration gennem 'info'-vektoren og udskrivning af hvert pars komponenter. Derefter bruger vi 'std::sort'-algoritmen til at omarrangere 'info'-vektoren baseret på standardsammenligningsoperatoren for par, som sammenligner det første element i hvert par (i dette tilfælde navnene). Efter sorteringsoperationen gentager vi den ændrede 'info' vektor ved at udskrive den sorterede information. Denne gang understreger outputtet den aldersførste bestilling, hvilket illustrerer resultatet af sorteringsprocessen.

Eksempel 3: Kombination af vektorer af forskellige typer

Du kan støde på nogle situationer, hvor du skal kombinere en information fra to vektorer. En vektor af par kan hjælpe med at opretholde sammenhængen mellem elementer fra de to vektorer.

#include
#inkluder

int main ( ) {
std::vektor < std::streng > byer = { 'New York' , 'Paris' , 'Tokyo' } ;
std::vektor < int > befolkninger = { 8175133 , 2140526 , 37435191 } ;

std::vektor < std::par < std::streng, int >> byPopulationPairs;

til ( size_t i = 0 ; jeg < std::min ( byer.størrelse ( ) , populationer.størrelse ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { byer [ jeg ] , befolkninger [ jeg ] } ) ;
}

std::cout << 'By-befolkningspar:' << std::endl;
til ( const auto & par : byPopulationPairs ) {
std::cout << 'By:' << par.først << ', Befolkning: ' << par.sekund << std::endl;
}

Vend tilbage 0 ;
}


I kodens 'hoved'-funktion erklæres to vektorer: 'byer' for at gemme bynavnene og 'befolkninger' for at gemme de tilsvarende befolkningsværdier.

En tredje vektor, 'cityPopulationPairs', er defineret til at gemme byparrene og deres respektive populationer. Hvert par er 'std::pair', hvor 'std::string' repræsenterer bynavnet og 'int' repræsenterer befolkningen. Vi bruger derefter en 'for'-løkke-iteration over vektorerne (byer og populationer) ved hjælp af 'std::min' for at sikre, at løkken ikke får adgang til elementerne ud over den mindste af de to vektorstørrelser. Inde i løkken oprettes par af bybefolkningsinformation og tilføjes til vektoren 'cityPopulationPairs'.

Efter at have kombineret informationen, bruges en anden 'for'-løkke til at iterere gennem de par, der er gemt i 'cityPopulationPairs'. De kombinerede data vises derefter på standardoutputtet ved hjælp af 'std::cout', der tydeligt repræsenterer hver by og dens tilsvarende befolkning.

Eksempel 4: Finde maksimum- og minimumværdier

At identificere minimums- og maksimumværdierne i et datasæt er et almindeligt krav i algoritmiske og statistiske operationer. Vi kan bruge en vektor af par til at holde styr på både maksimum- og minimumværdierne i en sekvens:

#include
#inkluder
#include

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

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

std::sort ( tal.begynde ( ) , tal.slut ( ) ) ;

minMaxPairs.push_back ( { numre.front ( ) , tal.tilbage ( ) } ) ;

std::cout << 'Min-Max-par:' << std::endl;
til ( const auto & par: minMaxPairs ) {
std::cout << 'Min:' << par.først << ', Max: ' << par.sekund << std::endl;
}

Vend tilbage 0 ;
}


Den medfølgende C++-kode demonstrerer processen med at finde minimums- og maksimumværdierne i en vektor af heltal og derefter gemme disse værdier i en vektor af par. En vektor ved navn 'tal' er indledningsvis erklæret og initialiseret med et sæt heltal. For effektivt at identificere minimums- og maksimumværdierne i datasættet, bruger programmet 'std::sort'-funktionen fra algoritmebiblioteket.

Denne funktion har til formål at arrangere elementerne i stigende rækkefølge, hvilket forenkler processen med at identificere både minimums- og maksimumværdierne i datasættet. Sorteringsoperationen anvendes på 'tal'-vektoren ved at bruge numbers.begin() og numbers.end() som områdeparametre. Efter sorteringstrinnet opretter programmet en vektor af par, 'minMaxPairs', for at gemme de beregnede minimum- og maksimumværdier. Funktionen 'push_back' bruges derefter til at tilføje et enkelt par, der indeholder den sorterede talvektors første (minimum) og sidste (maksimum) elementer. Til sidst udsender programmet resultatet ved at iterere gennem 'minMaxPairs' vektoren og vise minimums- og maksimumværdierne.

Konklusion

Som konklusion fremstår C++ vektoren af ​​par som en kraftfuld og fleksibel datastruktur, der tilføjer et lag af alsidighed til programmeringsopgaver. Gennem en detaljeret udforskning af dens syntaks og praktiske anvendelser har vi set, hvordan denne beholder hjælper med at organisere nøgleværdi-associeringerne, kombinere informationen fra forskellige vektorer og spore minimums- og maksimumværdierne.