C++ Párok vektora

C Parok Vektora



A C++ nyelvben a vektor egy sokoldalú konténer, amely dinamikusan átméretezheti magát, ami lehetővé teszi az elemek hatékony kezelését. Míg a pár egy egyszerű tároló, amely két heterogén objektumot tartalmazhat, amely kényelmes eszközt biztosít a kapcsolódó adatok társításához és kezeléséhez. Ha ezeket a párokat egy vektorba rendezik, a fejlesztők képesek lesznek létrehozni a kulcs-érték párok dinamikus gyűjteményeit vagy két különálló elem bármely más kombinációját.

Ez az adatstruktúra különösen hasznos olyan forgatókönyvekben, ahol az elemeket párokként kell tárolni, például amikor kulcs-érték párokkal foglalkozunk vagy az entitások közötti kapcsolatokat ábrázoljuk. Ebben a cikkben megvizsgáljuk a párok C++ vektorának fogalmát, és a gyakorlati alkalmazásait szemléltetjük a különféle példákkal.







1. példa: Alapvető használat: Iteráció párok vektorán

Nézzünk meg egy alappéldát, ahol a tanulók neveit és a hozzájuk tartozó életkorukat reprezentáló párok vektorát hozzuk létre. A párok vektora feletti iteráció hasonló a szabályos vektor feletti iterációhoz. Az iterátorok vagy a tartomány alapú „for” hurkok is használhatók a vektoron belüli minden pár lekéréséhez.



Ez a példa a „párok vektorának” szintaxisát mutatja be értelmes kontextusban.



#include
#include
#include

int fő ( ) {

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

studentData.push_back ( std::make_pair ( 'Ádám' , húsz ) ) ;
studentData.push_back ( std::make_pair ( 'Számla' , 22 ) ) ;
studentData.push_back ( std::make_pair ( 'Charlie' , huszonegy ) ) ;

std::cout << 'Hallgatói adatok: \n ' ;
számára ( const auto & diák : studentData ) {
std::cout << 'Név:' << diák.első << ', Életkor: ' << diák.második << std::endl;
}

Visszatérés 0 ;
}


Ebben a C++ kódrészletben három alapvető fejlécfájllal kezdjük: „ ” a bemeneti és kimeneti műveletekhez, „” a vektortároló használatához és „” az „std:: pár” sablon. Ezek a fejlécek lehetővé teszik számunkra a programunkhoz nélkülözhetetlen funkciók használatát.





Továbbhaladva a main() függvényen belül deklarálunk egy „studentData” nevű vektort az „std::vector” tároló használatával. Ezt a vektort arra tervezték, hogy tárolja azokat a párokat, amelyekben minden pár egy tanuló nevét („std::string”) és életkorát (egy „int” egész szám) tartalmazza. Ezután három párral töltjük fel a „studentData” vektort. A „push_back” függvény segítségével párok adódnak a vektor végéhez, dinamikusan módosítva a méretét. Ezután egy ciklus ismétlődik a „studentData”-on, kivonja és kinyomtatja az egyes tanulók nevét és életkorát. A kimeneten megjelenik a „Student Data:” felirat, amely kiemeli a strukturált ábrázolást. A tanulók neveit és életkorát külön nyomtatjuk, jól láthatóan megjelenítve a tárolt adatokat.



2. példa: Párok vektorának rendezése

A párok vektorának rendezése gyakori művelet, különösen kulcs-érték asszociációk esetén. Erre a célra az „ ” fejléc „std::sort” függvénye használható. Nézzük meg, hogyan kell rendezni a párok vektorát az első és a második elem alapján:

#include
#include
#include

int fő ( ) {

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

info.push_back ( std::make_pair ( 'Péter' , tizenöt ) ) ;
info.push_back ( std::make_pair ( 'Dora' , 29 ) ) ;
info.push_back ( std::make_pair ( 'Hanna' , húsz ) ) ;

std::cout << 'Eredeti információ: \n ' ;
számára ( const auto & bejegyzés: info ) {
std::cout << 'Név:' << belépés.első << ', Életkor: ' << bejegyzés.második << std::endl;
}


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

std::cout << ' \n Rendezett információ: \n ' ;
számára ( const auto & bejegyzés: info ) {
std::cout << 'Kor:' << bejegyzés.második << ', Név: ' << belépés.első << std::endl;
}

Visszatérés 0 ;
}


Ebben a C++ kódpéldában egy párok vektorával dolgozunk, hogy tároljuk és kezeljük az egyénekre vonatkozó adatokat, különösen a nevüket és életkorukat. A main() függvényen belül inicializálunk egy „info of pairs” nevű vektort. Ezt követően három párral töltjük fel ezt a vektort, amelyek mindegyike egy-egy személy nevét és életkorát tartalmazza, felhasználva a „push_back” és az „std::make_pair” függvényt a hatékony párok létrehozásához.

Kiadjuk az „Eredeti információkat” a konzolra. Ez magában foglalja az „info” vektoron keresztüli iterációt és az egyes párok összetevőinek kinyomtatását. Ezután az „std::sort” algoritmust használjuk az „info” vektor átrendezésére a párok alapértelmezett összehasonlító operátora alapján, amely összehasonlítja az egyes párok első elemét (ebben az esetben a neveket). A rendezési műveletet követően ismét a módosított „info” vektort iteráljuk a rendezett információk kinyomtatásával. A kimenet ezúttal az életkor szerinti sorrendet hangsúlyozza, illusztrálva a válogatási folyamat eredményét.

3. példa: Különböző típusú vektorok kombinálása

Előfordulhat olyan helyzet, amikor két vektorból származó információt kell kombinálnia. A párok vektora segíthet fenntartani a kapcsolatot a két vektor elemei között.

#include
#include

int fő ( ) {
std::vektor < std::string > városok = { 'New York' , 'Párizs' , 'Tokió' } ;
std::vektor < int > populációk = { 8175133 , 2140526 , 37435191 } ;

std::vektor < std::pair < std::string, int >> városNépességPárok;

számára ( size_t i = 0 ; én < std::min ( városok.méret ( ) , populációk.méret ( ) ) ; ++i ) {
cityPopulationPairs.push_back ( { városok [ én ] , populációk [ én ] } ) ;
}

std::cout << 'Város-lakosság párok:' << std::endl;
számára ( const auto & pár : városNépességPárok ) {
std::cout << 'Város:' << pár.első << ', Népesség: ' << pár.második << std::endl;
}

Visszatérés 0 ;
}


A kód „fő” függvényében két vektor van deklarálva: „városok” a városnevek és „populációk” a megfelelő népességértékek tárolására.

Egy harmadik vektor, a „cityPopulationPairs” a várospárok és a hozzájuk tartozó populációk tárolására szolgál. Mindegyik pár „std::pair”, ahol az „std::string” a város nevét, az „int” pedig a lakosságot jelöli. Ezután egy „for” hurokiterációt használunk a vektorokon (városok és populációk) az „std::min” használatával, hogy biztosítsuk, hogy a hurok ne érje el a két vektorméret közül a kisebbet meghaladó elemeket. A hurkon belül város-népesség információ párok jönnek létre, és hozzá vannak fűzve a „cityPopulationPairs” vektorhoz.

Az információk egyesítése után egy másik „for” hurkot használnak a „cityPopulationPairs”-ben tárolt párok iterálására. A kombinált adatok ezután megjelennek a szabványos kimeneten az „std::cout” használatával, egyértelműen ábrázolva az egyes városokat és a megfelelő lakosságot.

4. példa: A maximális és minimális értékek megkeresése

A minimális és maximális értékek azonosítása egy adatkészleten belül általános követelmény az algoritmikus és statisztikai műveleteknél. Párok vektorát használhatjuk a sorozat maximális és minimális értékeinek nyomon követésére:

#include
#include
#include

int fő ( ) {
std::vektor < int > számok = { 5 , 12 , 18 , 3 , 7 , 4 , 33 } ;

std::vektor < std::pair < te, te >> minMaxPairs;

std::sort ( számok.kezdődik ( ) , számok.vége ( ) ) ;

minMaxPairs.push_back ( { számok.elöl ( ) , számok.vissza ( ) } ) ;

std::cout << 'Min-Max párok:' << std::endl;
számára ( const auto & pár: minMaxPairs ) {
std::cout << 'Min:' << pár.első << ', Max: ' << pár.második << std::endl;
}

Visszatérés 0 ;
}


A mellékelt C++ kód azt a folyamatot szemlélteti, hogyan kell megtalálni a minimális és maximális értékeket egy egész számok vektorában, majd tárolni ezeket az értékeket egy párok vektorában. A „számok” nevű vektort kezdetben deklarálják és egész számok halmazával inicializálják. Az adatkészlet minimális és maximális értékének hatékony azonosításához a program az „std::sort” függvényt használja az algoritmuskönyvtárból.

Ennek a funkciónak az a célja, hogy az elemeket növekvő sorrendbe rendezze, leegyszerűsítve az adatkészletben található minimális és maximális értékek azonosításának folyamatát. A rendezési műveletet a „numbers” vektorra alkalmazzuk a numbers.begin() és numbers.end() tartományparaméterek használatával. A rendezési lépést követően a program létrehozza a párok vektorát, a „minMaxPairs”, a számított minimum és maximum értékek tárolására. A „push_back” függvény ezután egyetlen pár hozzáadására szolgál, amely tartalmazza a rendezett számvektor első (minimális) és utolsó (maximum) elemét. Végül a program a „minMaxPairs” vektor iterációjával és a minimális és maximális értékek megjelenítésével adja ki az eredményt.

Következtetés

Összefoglalva, a párok C++ vektora erőteljes és rugalmas adatstruktúraként jelenik meg, amely sokoldalúságot ad a programozási feladatokhoz. Szintaxisának és gyakorlati alkalmazásainak részletes feltárása során láthattuk, hogy ez a tároló hogyan segít a kulcs-érték asszociációk rendszerezésében, a különböző vektorokból származó információk kombinálásában, valamint a minimális és maximális értékek nyomon követésében.