C++ Parien vektori

C Parien Vektori



C++:ssa vektori on monipuolinen säiliö, joka voi muuttaa itsensä dynaamisesti kokoa, mikä mahdollistaa elementtien tehokkaan manipuloinnin. Vaikka pari on yksinkertainen säiliö, johon mahtuu kaksi heterogeenistä objektia, mikä tarjoaa kätevän tavan yhdistää ja hallita liittyviä tietoja. Kun nämä parit järjestetään vektorin sisällä, kehittäjät saavat mahdollisuuden luoda dynaamisia kokoelmia avainarvopareista tai minkä tahansa muun kahden erillisen elementin yhdistelmän.

Tämä tietorakenne on erityisen hyödyllinen skenaarioissa, joissa elementit on tallennettava pareina, kuten käsiteltäessä avain-arvo-pareja tai esitettäessä entiteettien välisiä suhteita. Tässä artikkelissa tutkimme parien C++-vektorin käsitettä ja tutkimme erilaisia ​​esimerkkejä sen käytännön sovellusten havainnollistamiseksi.







Esimerkki 1: Peruskäyttö: Iterointi parivektorin yli

Tarkastellaanpa perusesimerkkiä, jossa luomme vektorin pareista, jotka edustavat oppilaiden nimiä ja niitä vastaavia ikäryhmiä. Parien vektorin iterointi on samanlaista kuin tavallisen vektorin iterointi. Voidaan käyttää joko iteraattoreita tai aluepohjaisia ​​'for'-silmukoita jokaisen vektorin sisällä olevan parin hakemiseen.



Tämä esimerkki esittelee 'parien vektorin' syntaksin merkityksellisessä kontekstissa.



#include
#sisällytä
#sisällytä

int main ( ) {

std::vektori < std::pair < std::string, int >> opiskelijatiedot;

opiskelijaData.push_back ( std::make_pair ( 'Adam' , kaksikymmentä ) ) ;
opiskelijaData.push_back ( std::make_pair ( 'Laskuttaa' , 22 ) ) ;
opiskelijaData.push_back ( std::make_pair ( 'Charlie' , kaksikymmentäyksi ) ) ;

std::cout << 'Opiskelijatiedot: \n ' ;
varten ( const auto & opiskelija : studentData ) {
std::cout << 'Nimi:' << opiskelija.ensin << ', Ikä: ' << opiskelija.toinen << std::endl;
}

palata 0 ;
}


Tässä C++-koodinpätkässä aloitamme lisäämällä kolme tärkeää otsikkotiedostoa: ' ' syöttö- ja tulostustoimintoja varten, '' vektorisäilöä varten ja ' ' 'std:: pari” -malli. Näiden otsikoiden avulla voimme käyttää ohjelmallemme tärkeitä toimintoja.





Eteenpäin main()-funktiossa julistamme vektorin nimeltä 'studentData' käyttämällä 'std::vector' -säiliötä. Tämä vektori on suunniteltu tallentamaan parit, joihin kukin pari kapseloi opiskelijan nimen (esitetty muodossa 'std::string') ja iän ('int' kokonaisluku). Sitten täytämme 'studentData'-vektorin kolmella parilla. 'Push_back'-funktiolla parit lisätään vektorin loppuun säätämällä sen kokoa dynaamisesti. Silmukka toistuu sitten 'studentDatan' läpi, poimimalla ja tulostaen jokaisen opiskelijan nimen ja iän. Tulosteessa näkyy 'Student Data:', joka korostaa jäsenneltyä esitystä. Opiskelijoiden nimet ja iät tulostetaan erikseen, jolloin tallennetut tiedot näkyvät selvästi.



Esimerkki 2: Parien vektorin lajittelu

Parivektorin lajittelu on yleinen toimenpide, varsinkin kun käsitellään avainarvo-assosiaatioita. ' '-otsikon 'std::sort'-funktiota voidaan käyttää tähän tarkoitukseen. Katsotaanpa, kuinka parien vektori lajitellaan ensimmäisen ja toisen elementin perusteella:

#include
#sisällytä
#include

int main ( ) {

std::vektori < std::pair < std::string, int >> tiedot;

info.push_back ( std::make_pair ( 'Peter' , viisitoista ) ) ;
info.push_back ( std::make_pair ( 'Dora' , 29 ) ) ;
info.push_back ( std::make_pair ( 'Hanna' , kaksikymmentä ) ) ;

std::cout << 'Alkuperäiset tiedot: \n ' ;
varten ( const auto & merkintä: info ) {
std::cout << 'Nimi:' << sisääntulo.ensimmäinen << ', Ikä: ' << merkintä.sekunti << std::endl;
}


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

std::cout << ' \n Lajiteltu tieto: \n ' ;
varten ( const auto & merkintä: info ) {
std::cout << 'Ikä:' << merkintä.sekunti << ', Nimi: ' << sisääntulo.ensimmäinen << std::endl;
}

palata 0 ;
}


Tässä C++-koodiesimerkissä työskentelemme parien vektorin kanssa tallentaaksemme ja muokataksemme yksilöihin liittyviä tietoja, erityisesti heidän nimiään ja ikänsä. Alustamme vektorin nimeltä 'info of pairs' main()-funktiossa. Myöhemmin täytämme tämän vektorin kolmella parilla, joista jokainen sisältää erillisen henkilön nimen ja iän. Käytämme 'push_back'-funktiota ja 'std::make_pair' tehokkaaseen parien luomiseen.

Tulostamme 'Alkuperäiset tiedot' konsoliin. Tämä sisältää iteroinnin 'info'-vektorin läpi ja kunkin parin komponenttien tulostamisen. Sitten käytämme 'std::sort'-algoritmia järjestämään 'info'-vektoria uudelleen parien oletusvertailuoperaattorin perusteella, joka vertaa kunkin parin ensimmäistä elementtiä (tässä tapauksessa nimiä). Lajittelun jälkeen iteroidaan uudelleen muokatun 'info'-vektorin läpi tulostamalla lajitellut tiedot. Tällä kertaa tuotoksessa korostetaan ikäensijaista järjestystä havainnollistaen lajitteluprosessin tulosta.

Esimerkki 3: Eri tyyppisten vektorien yhdistäminen

Saatat kohdata tilanteita, joissa sinun on yhdistettävä kahden vektorin tiedot. Parien vektori voi auttaa ylläpitämään assosiaatiota näiden kahden vektorin elementtien välillä.

#include
#sisällytä

int main ( ) {
std::vektori < std::string > kaupungit = { 'New York' , 'Pariisi' , 'Tokio' } ;
std::vektori < int > populaatiot = { 8175133 , 2140526 , 37435191 } ;

std::vektori < std::pair < std::string, int >> kaupunkiVäestöparit;

varten ( koko_t i = 0 ; i < std::min ( kaupungit.koko ( ) , populaatiot.koko ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { kaupungit [ i ] , populaatiot [ i ] } ) ;
}

std::cout << 'Kaupunki-asukas -parit:' << std::endl;
varten ( const auto & pari : kaupunkiPopulationPairs ) {
std::cout << 'Kaupunki:' << pari.ensin << ', Väestö: ' << pari.sekunti << std::endl;
}

palata 0 ;
}


Koodin 'pää'-funktiossa ilmoitetaan kaksi vektoria: 'kaupungit' tallentamaan kaupunkien nimet ja 'populaatiot' vastaavien väestöarvojen tallentamiseen.

Kolmas vektori, 'cityPopulationPairs', on määritelty tallentamaan kaupunkiparit ja niiden vastaavat populaatiot. Jokainen pari on 'std::pair', jossa 'std::string' edustaa kaupungin nimeä ja 'int' edustaa väestöä. Käytämme sitten 'for' -silmukan iteraatiota vektorien (kaupungit ja populaatiot) yli käyttämällä 'std::min' varmistaaksemme, että silmukka ei pääse käsiksi elementteihin, jotka ovat pienempiä kahdesta vektorikoosta. Silmukan sisällä luodaan kaupunki-väestötietojen pareja ja liitetään 'cityPopulationPairs' -vektoriin.

Tietojen yhdistämisen jälkeen toista 'for'-silmukkaa käytetään iteroimaan 'cityPopulationPairs' -kansioon tallennettujen parien läpi. Yhdistetyt tiedot näytetään sitten vakiotulosteessa käyttämällä 'std::cout', joka edustaa selvästi jokaista kaupunkia ja sitä vastaavaa väestöä.

Esimerkki 4: Maksimi- ja vähimmäisarvojen löytäminen

Tietojoukon minimi- ja maksimiarvojen tunnistaminen on yleinen vaatimus algoritmisissa ja tilastollisissa toimissa. Voimme käyttää parien vektoria seurataksemme sekä maksimi- että vähimmäisarvoja sarjassa:

#include
#sisällytä
#include

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

std::vektori < std::pair < sinä, sinä >> minMaxPairs;

std::sort ( numerot.alku ( ) , numbers.end ( ) ) ;

minMaxPairs.push_back ( { numerot.edessä ( ) , numerot.takaisin ( ) } ) ;

std::cout << 'Minimi-Max -parit:' << std::endl;
varten ( const auto & pari: minMaxPairs ) {
std::cout << 'Min:' << pari.ensin << ', Max: ' << pari.sekunti << std::endl;
}

palata 0 ;
}


Mukana oleva C++-koodi näyttää prosessin, jossa minimi- ja maksimiarvot löydetään kokonaislukuvektorista ja sitten tallennetaan nämä arvot parivektoriin. Vektori nimeltä 'luvut' ilmoitetaan aluksi ja alustetaan kokonaislukujoukolla. Tunnistaakseen tehokkaasti tietojoukon minimi- ja maksimiarvot ohjelma käyttää algoritmikirjaston 'std::sort'-funktiota.

Tämä toiminto pyrkii järjestämään elementit nousevaan järjestykseen, mikä yksinkertaistaa sekä minimi- että maksimiarvojen tunnistamisprosessia tietojoukossa. Lajittelutoimintoa sovelletaan 'numbers'-vektoriin käyttämällä numerot.begin() ja numbers.end() alueen parametreina. Lajitteluvaiheen jälkeen ohjelma luo parien vektorin, 'minMaxPairs', tallentaakseen lasketut minimi- ja maksimiarvot. 'Push_back'-funktiota käytetään sitten lisäämään yksi pari, joka sisältää lajiteltujen lukujen vektorin ensimmäisen (minimi) ja viimeisen (maksimi) elementin. Lopuksi ohjelma tulostaa tuloksen iteroimalla 'minMaxPairs'-vektorin läpi ja näyttämällä minimi- ja maksimiarvot.

Johtopäätös

Yhteenvetona voidaan todeta, että C++-parien vektori muodostuu tehokkaaksi ja joustavaksi tietorakenteeksi, joka lisää ohjelmointitehtäviin monipuolisuutta. Sen syntaksin ja käytännön sovellusten yksityiskohtaisen tutkimisen kautta olemme nähneet, kuinka tämä säilö auttaa järjestämään avainarvo-assosiaatioita, yhdistämään eri vektoreista peräisin olevat tiedot ja seuraamaan minimi- ja maksimiarvoja.