C ++

Jak iterovat po mapě v C ++

Jak iterovat po mapě v C ++
V tomto rychlém kurzu uvidíme, jak iterovat na mapě v C++.

Existuje několik způsobů, jak iterovat po mapě v jazyce C++. S novějšími verzemi C ++ existují pokročilejší způsoby iterace po mapě v jazyce C++.

Pojďme projít každý jeden po druhém.

Použití smyčky for s stp :: map

Vytvořili jsme mapu s názvem countryCapitalMap a vložil do ní páry klíč – hodnota.


#zahrnout
#zahrnout
#zahrnout
#zahrnout
#zahrnout
pomocí jmenného prostoru std;
int main ()
// Inicializace mapy
mapa> „Indie“, „Dillí“));
countryCapitalMap.vložka (pár(„Nepál“, „Káthmándú“));
countryCapitalMap.vložka (pár(„Čína“, „Peking“));
countryCapitalMap.vložka (pár(„Francie“, „Paříž“));
// Iterujte pomocí iterátoru ve smyčce for
pro (auto itr = countryCapitalMap.začít(); itr != countryCapitalMap.konec(); itr ++)

std :: cout << itr->první // Přístupový klíč
<< ':'
<< itr->sekunda // Přístupová hodnota
<< std::endl;

návrat 0;


Výstup:

Čína: Peking
Francie: Paříž
Indie: Dillí
Nepál: Káthmándú

Jak vidíte, vytiskli jsme zemi: kapitál (klíč: hodnota) pomocí smyčky for.

Pokud si všimnete, použili jsme auto specifikátor typu pro iterátor mapy z důvodu čitelnosti. Můžeš použít mapa:: iterátor výslovně také.
Poznámka: Pokud vidíte výstup, je seřazen podle klíčů ve vzestupném pořadí. Důvodem je, že std :: map je tříděný asociativní kontejner s dodaným komparátorem (verze C ++ 11 a novější). Vzhledem k tomu, že jsme neposkytli žádný komparátor, používá C ++ pro řetězec výchozí komparátor.

Použití while smyčky s stp :: map

Můžeme také použít smyčku while místo smyčky for.


#zahrnout
#zahrnout
#zahrnout
#zahrnout >
pomocí jmenného prostoru std;
int main ()
// Inicializace mapy
mapa countryCapitalMap;
// Vložte různé prvky do mapy
countryCapitalMap.vložka (pár(„Indie“, „Dillí“));
countryCapitalMap.vložka (pár(„Nepál“, „Káthmándú“));
countryCapitalMap.vložka (pár(„Čína“, „Peking“));
countryCapitalMap.vložka (pár(„Francie“, „Paříž“));
// Vytvořte iterátor pro mapu a inicializujte s begin
auto itr = countryCapitalMap.začít();
// Iterace pomocí iterátoru ve smyčce while
while (itr!= countryCapitalMap.konec())

std :: cout << itr->první // Přístupový klíč
<< ':'
<< itr->sekunda // Přístupová hodnota
<< std::endl;
itr ++;

návrat 0;


Výstup:

Čína: Peking
Francie: Paříž
Indie: Dillí
Nepál: Káthmándú

Použití rozsahu založeného na smyčce (od verze C ++ 11)

Pokud používáte verzi C ++ 11, je to nejelegantnější způsob iterace po mapě v jazyce C++. Můžete se vyhnout tradičním smyčkovitým smyčkám a místo toho je použít.


#zahrnout
#zahrnout
#zahrnout
pomocí jmenného prostoru std;
int main ()
// Inicializace mapy
mapa countryCapitalMap;
// Vložte různé prvky do mapy
countryCapitalMap.vložka (pár(„Indie“, „Dillí“));
countryCapitalMap.vložka (pár(„Nepál“, „Káthmándú“));
countryCapitalMap.vložka (pár(„Čína“, „Peking“));
countryCapitalMap.vložka (pár(„Francie“, „Paříž“));
// Iterace pomocí iterátoru ve smyčce for
pro (const auto & ele: countryCapitalMap)
cout <
návrat 0;


Výstup:
Čína: Peking
Francie: Paříž
Indie: Dillí
Nepál: Káthmándú

Použití smyčky založené na rozsahu s páry klíč – hodnota (od verze C ++ 17)

Tato verze je podporována od c ++ 17 a dále a poskytuje flexibilnější způsob iterace po mapě. V mapě můžete explicitně přistupovat k páru klíč – hodnota, což poskytuje ještě čitelnější řešení.


#zahrnout
#zahrnout
#zahrnout
pomocí jmenného prostoru std;
int main ()
// Inicializace mapy
mapa countryCapitalMap;
// Vložte různé prvky do mapy
countryCapitalMap.vložka (pár(„Indie“, „Dillí“));
countryCapitalMap.vložka (pár(„Nepál“, „Káthmándú“));
countryCapitalMap.vložka (pár(„Čína“, „Peking“));
countryCapitalMap.vložka (pár(„Francie“, „Paříž“));
// Iterujte pomocí iterátoru ve smyčce for
pro (const auto & [klíč, hodnota]: countryCapitalMap)
cout << key << ":" << value << "\n";

návrat 0;


Výstup:
Čína: Peking
Francie: Paříž
Indie: Dillí
Nepál: Káthmándú

To je vše o tom, jak iterovat po mapě v C++. Šťastné kódování!

Jak obrátit směr posouvání myši a touchpadu ve Windows 10
Myš a Touchpadnejenže usnadňují výpočet, ale jsou efektivnější a méně časově náročné. Nemůžeme si představit život bez těchto zařízení, ale přesto je ...
Jak změnit velikost, barvu a schéma kurzoru myši a kurzoru v systému Windows 10
Ukazatel myši a kurzor ve Windows 10 jsou velmi důležité aspekty operačního systému. To lze říci i pro jiné operační systémy, takže ve skutečnosti nej...
Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...