C ++

Ako iterovať po mape v C ++

Ako iterovať po mape v C ++
V tomto rýchlom návode uvidíme, ako iterovať na mape v jazyku C++.

Existuje niekoľko spôsobov, ako iterovať po mape v jazyku C++. S novšími verziami C ++ existujú pokročilejšie spôsoby iterácie po mape v jazyku C++.

Prejdime si každý jeden po druhom.

Použitie cyklu for s stp :: map

Vytvorili sme mapu s názvom countryCapitalMap a vložili do nej páry kľúč - hodnota.


#include
#include
#include
#include
#include
pomocou namespace std;
int main ()
// Inicializuje mapu
mapa> „India“, „Dillí“));
countryCapitalMap.vložka (pár(„Nepál“, „Káthmandu“));
countryCapitalMap.vložka (pár(„Čína“, „Peking“));
countryCapitalMap.vložka (pár(„Francúzsko“, „Paríž“));
// Iterácia pomocou iterátora v cykle for
pre (auto itr = countryCapitalMap.začať(); itr != countryCapitalMap.koniec(); itr ++)

std :: cout << itr->prvý // Prístupový kľúč
<< ':'
<< itr->sekunda // Prístupová hodnota
<< std::endl;

návrat 0;


Výkon:

Čína: Peking
Francúzsko: Paríž
India: Dillí
Nepál: Káthmandu

Ako vidíte, pomocou cyklu for sme vytlačili country: capital (key: value).

Ak si všimnete, použili sme auto špecifikátor typu pre iterátor máp z dôvodu čitateľnosti. Môžeš použiť mapa:: iterátor vyslovene tiež.
Poznámka: Ak vidíte výstup, je zoradený podľa klávesov vzostupne. Je to tak preto, lebo std :: map je triedený asociatívny kontajner s dodaným komparátorom (verzia C ++ 11 a novšia). Pretože sme neposkytli žiadny komparátor, tak C ++ použil pre reťazec predvolený komparátor.

Použitie while cyklu s stp :: map

Môžeme tiež použiť cyklus while namiesto cyklu for.


#include
#include
#include
#include >
pomocou namespace std;
int main ()
// Inicializuje mapu
mapa countryCapitalMap;
// Vložte rôzne prvky do mapy
countryCapitalMap.vložka (pár(„India“, „Dillí“));
countryCapitalMap.vložka (pár(„Nepál“, „Káthmandu“));
countryCapitalMap.vložka (pár(„Čína“, „Peking“));
countryCapitalMap.vložka (pár(„Francúzsko“, „Paríž“));
// Vytvorte iterátor mapy a inicializujte začiatkom
auto itr = countryCapitalMap.začať();
// Iterácia pomocou iterátora in while
while (itr!= countryCapitalMap.koniec())

std :: cout << itr->prvý // Prístupový kľúč
<< ':'
<< itr->sekunda // Prístupová hodnota
<< std::endl;
itr ++;

návrat 0;


Výkon:

Čína: Peking
Francúzsko: Paríž
India: Dillí
Nepál: Káthmandu

Používanie rozsahu založeného na cykle (od verzie C ++ 11)

Ak používate verziu C ++ 11, je to najelegantnejší spôsob iterácie po mape v jazyku C++. Môžete sa vyhnúť tradičným kockovitým slučkám a použiť ich namiesto toho.


#include
#include
#include
pomocou namespace std;
int main ()
// Inicializuje mapu
mapa countryCapitalMap;
// Vložte rôzne prvky do mapy
countryCapitalMap.vložka (pár(„India“, „Dillí“));
countryCapitalMap.vložka (pár(„Nepál“, „Káthmandu“));
countryCapitalMap.vložka (pár(„Čína“, „Peking“));
countryCapitalMap.vložka (pár(„Francúzsko“, „Paríž“));
// Iterácia pomocou iterátora v cykle for
pre (const auto & ele: countryCapitalMap)
cout <
návrat 0;


Výkon:
Čína: Peking
Francúzsko: Paríž
India: Dillí
Nepál: Káthmandu

Použitie rozsahu založeného na cykle s pármi kľúč - hodnota (od verzie C ++ 17)

Táto verzia je podporovaná od c ++ 17 a ďalej a poskytuje flexibilnejší spôsob iterácie po mape. Na mape máte explicitný prístup k páru kľúč - hodnota, čo poskytuje ešte čitateľnejšie riešenie.


#include
#include
#include
pomocou namespace std;
int main ()
// Inicializuje mapu
mapa countryCapitalMap;
// Vložte rôzne prvky do mapy
countryCapitalMap.vložka (pár(„India“, „Dillí“));
countryCapitalMap.vložka (pár(„Nepál“, „Káthmandu“));
countryCapitalMap.vložka (pár(„Čína“, „Peking“));
countryCapitalMap.vložka (pár(„Francúzsko“, „Paríž“));
// Iterácia pomocou iterátora v cykle for
pre (konšt. auto & [kľúč, hodnota]: countryCapitalMap)
cout << key << ":" << value << "\n";

návrat 0;


Výkon:
Čína: Peking
Francúzsko: Paríž
India: Dillí
Nepál: Káthmandu

To je všetko o tom, ako iterovať po mape v C++. Šťastné programovanie!

Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...
Hry Najlepšie aplikácie na mapovanie gamepadu pre Linux
Najlepšie aplikácie na mapovanie gamepadu pre Linux
Ak radi hráte hry v systéme Linux s gamepadom namiesto typického systému vstupu pre klávesnicu a myš, máte tu niekoľko užitočných aplikácií. Mnoho hie...
Hry Užitočné nástroje pre hráčov systému Linux
Užitočné nástroje pre hráčov systému Linux
Ak radi hráte hry v systéme Linux, je pravdepodobné, že ste na vylepšenie herného zážitku použili aplikácie a pomôcky ako Wine, Lutris a OBS Studio. O...