C ++

Kaip kartoti žemėlapį C ++

Kaip kartoti žemėlapį C ++
Šioje greitoje pamokoje pamatysime, kaip kartoti žemėlapį C++.

Yra keli kartojimo būdai per žemėlapį C++. Naudojant naujesnes C ++ versijas, yra tobulesnių būdų kartoti žemėlapį C++.

Peržiūrėkime kiekvieną po vieną.

Naudojimas kilpai su „stp :: map“

Mes sukūrėme žemėlapį pavadinimu countryCapitalMap ir į ją įterpė raktų-vertybių poras.


# įtraukti
# įtraukti
# įtraukti
# įtraukti
# įtraukti
naudojant vardų sritį std;
int main ()
// Inicijuoti žemėlapį
žemėlapis> "Indija", "Delis"));
countryCapitalMap.įterpti (pora(„Nepalas“, „Katmandu“));
countryCapitalMap.įterpti (pora(„Kinija“, „Pekinas“));
countryCapitalMap.įterpti (pora(„Prancūzija“, „Paryžius“));
// Kartoti naudojant iteratorių ciklui
for (auto itr = countryCapitalMap.pradėti (); itr != countryCapitalMap.galas(); itr ++)

std :: cout << itr->pirmasis // prieigos raktas
<< ':'
<< itr->sekundė // Prieigos vertė
<< std::endl;

grąžinti 0;


Išvestis:

Kinija: Pekinas
Prancūzija: Paryžius
Indija: Delis
Nepalas: Katmandu

Kaip matote, mes turime atspausdintą šalį: kapitalas (raktas: vertė), naudodami ciklą.

Jei pastebėsite, mes panaudojome automatinis žemėlapio iteratoriaus tipo specifikatorius dėl skaitomumo. Tu gali naudoti žemėlapis:: iteratorius taip pat aiškiai.
Pastaba: Jei matote išvestį, ji rūšiuojama pagal raktus didėjimo tvarka. Taip yra todėl, kad „std :: map“ yra rūšiuojamas asociacinis konteineris su pateiktu „Comparator“ (versija C ++ 11 ir toliau). Kadangi mes nepateikėme jokio lyginamojo elemento, C ++ eilutei naudojo numatytąjį „Comparator“.

„While loop“ naudojimas su „stp :: map“

Mes taip pat galime naudoti „loop“, o ne „loop“.


# įtraukti
# įtraukti
# įtraukti
# įtraukti >
naudojant vardų sritį std;
int main ()
// Inicijuoti žemėlapį
žemėlapis countryCapitalMap;
// Įterpkite skirtingus elementus į žemėlapį
countryCapitalMap.įterpti (pora(„Indija“, „Delis“));
countryCapitalMap.įterpti (pora(„Nepalas“, „Katmandu“));
countryCapitalMap.įterpti (pora(„Kinija“, „Pekinas“));
countryCapitalMap.įterpti (pora(„Prancūzija“, „Paryžius“));
// Sukurkite žemėlapio iteratorių ir pradėkite nuo pradžios
auto itr = countryCapitalMap.pradėti ();
// Kartoti naudojant iteratorių, o cikle
o (itr!= countryCapitalMap.galas())

std :: cout << itr->pirmasis // prieigos raktas
<< ':'
<< itr->sekundė // Prieigos vertė
<< std::endl;
itr ++;

grąžinti 0;


Išvestis:

Kinija: Pekinas
Prancūzija: Paryžius
Indija: Delis
Nepalas: Katmandu

Naudojant diapazoną pagal kilpą (C ++ 11 versija ir toliau)

Jei naudojate C ++ 11 versiją, tai yra elegantiškiausias būdas kartoti žemėlapį C++. Galite vengti tradicinių „cubersome“ kilpų ir naudoti tai.


# įtraukti
# įtraukti
# įtraukti
naudojant vardų sritį std;
int main ()
// Inicijuoti žemėlapį
žemėlapis countryCapitalMap;
// Įterpkite skirtingus elementus į žemėlapį
countryCapitalMap.įterpti (pora(„Indija“, „Delis“));
countryCapitalMap.įterpti (pora(„Nepalas“, „Katmandu“));
countryCapitalMap.įterpti (pora(„Kinija“, „Pekinas“));
countryCapitalMap.įterpti (pora(„Prancūzija“, „Paryžius“));
// Kartoti naudojant iteratorių ciklui
skirta (const auto & ele: countryCapitalMap)
cout <
grąžinti 0;


Išvestis:
Kinija: Pekinas
Prancūzija: Paryžius
Indija: Delis
Nepalas: Katmandu

Naudojant diapazoną pagal kilpą su raktų reikšmių poromis (C ++ 17 versija ir toliau)

Ši versija palaikoma nuo c ++ 17 ir suteikia lankstesnį kartojimo per žemėlapį būdą. Žemėlapyje galite aiškiai pasiekti raktų-vertybių porą, kuri suteikia dar aiškesnį sprendimą.


# įtraukti
# įtraukti
# įtraukti
naudojant vardų sritį std;
int main ()
// Inicijuoti žemėlapį
žemėlapis countryCapitalMap;
// Įterpkite skirtingus elementus į žemėlapį
countryCapitalMap.įterpti (pora(„Indija“, „Delis“));
countryCapitalMap.įterpti (pora(„Nepalas“, „Katmandu“));
countryCapitalMap.įterpti (pora(„Kinija“, „Pekinas“));
countryCapitalMap.įterpti (pora(„Prancūzija“, „Paryžius“));
// Kartoti naudojant iteratorių ciklui
for (const auto & [raktas, reikšmė]: countryCapitalMap)
cout << key << ":" << value << "\n";

grąžinti 0;


Išvestis:
Kinija: Pekinas
Prancūzija: Paryžius
Indija: Delis
Nepalas: Katmandu

Viskas apie tai, kaip kartoti žemėlapį C++. Laimingo kodavimo!

„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...
„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...