C ++

Sådan gentages det over kortet i C ++

Sådan gentages det over kortet i C ++
I denne hurtige vejledning vil vi se, hvordan man gentager sig på kort i C++.

Der er flere måder at gentage over kortet i C++. Med nyere versioner af C ++ er der mere avancerede måder at gentage over kortet i C++.

Lad os gennemgå hver enkelt efter én.

Brug af for loop med stp :: map

Vi har oprettet et kort med navnet countryCapitalMap og indsatte nøgleværdipar til den.


#omfatte
#omfatte
#omfatte
#omfatte
#omfatte
ved hjælp af namespace std;
int main ()
// Initialiser et kort
kort> "Indien", "Delhi"));
countryCapitalMap.indsæt (par("Nepal", "Kathmandu"));
countryCapitalMap.indsæt (par("Kina", "Beijing"));
countryCapitalMap.indsæt (par("Frankrig", "Paris");
// Iterér ved hjælp af iterator in for loop
for (auto itr = countryCapitalMap.begynde(); itr != countryCapitalMap.ende(); itr ++)

std :: cout << itr->første // Adgangsnøgle
<< ':'
<< itr->anden // Adgangsværdi
<< std::endl;

returnere 0;


Produktion:

Kina: Beijing
Frankrig: Paris
Indien: Delhi
Nepal: Kathmandu

Som du kan se, har vi udskrevet land: kapital (nøgle: værdi) ved hjælp af for loop.

Hvis du bemærker, har vi brugt auto typespecifikator for kort-iterator på grund af læsbarhed. Du kan bruge kort:: iterator eksplicit også.
Bemærk: Hvis du ser output, sorteres det efter taster i stigende rækkefølge. Dette skyldes, at std :: map er en sorteret associerende beholder med den medfølgende komparator (version C ++ 11 og fremefter). Da vi ikke leverede nogen komparator, har C ++ brugt standardkomparatoren til streng.

Brug af mens loop med stp :: kort

Vi kan også bruge et while loop i stedet for for loop.


#omfatte
#omfatte
#omfatte
#omfatte >
ved hjælp af namespace std;
int main ()
// Initialiser et kort
kort countryCapitalMap;
// Indsæt forskellige elementer på kortet
countryCapitalMap.indsæt (par("Indien", "Delhi"));
countryCapitalMap.indsæt (par("Nepal", "Kathmandu"));
countryCapitalMap.indsæt (par("Kina", "Beijing"));
countryCapitalMap.indsæt (par("Frankrig", "Paris");
// Opret en iterator til kortet og initialiser med start
auto itr = countryCapitalMap.begynde();
// Iterer ved hjælp af iterator i mens loop
while (itr!= countryCapitalMap.ende())

std :: cout << itr->første // Adgangsnøgle
<< ':'
<< itr->anden // Adgangsværdi
<< std::endl;
itr ++;

returnere 0;


Produktion:

Kina: Beijing
Frankrig: Paris
Indien: Delhi
Nepal: Kathmandu

Brug af Range based for loop (C ++ 11 version og frem)

Hvis du bruger C ++ 11-versionen, er dette den mest elegante måde at gentage over kort i C++. Du kan undgå traditionelle kubiksløjfer og bruge dette i stedet.


#omfatte
#omfatte
#omfatte
ved hjælp af namespace std;
int main ()
// Initialiser et kort
kort countryCapitalMap;
// Indsæt forskellige elementer på kortet
countryCapitalMap.indsæt (par("Indien", "Delhi"));
countryCapitalMap.indsæt (par("Nepal", "Kathmandu"));
countryCapitalMap.indsæt (par("Kina", "Beijing"));
countryCapitalMap.indsæt (par("Frankrig", "Paris");
// Iterér ved hjælp af iterator in for loop
for (const auto & ele: countryCapitalMap)
cout <
returnere 0;


Produktion:
Kina: Beijing
Frankrig: Paris
Indien: Delhi
Nepal: Kathmandu

Brug af områdebaseret til loop med nøgleværdipar (C ++ 17-version og frem)

Denne version understøttes fra og med c ++ 17 og giver en mere fleksibel måde til iterering over kortet. Du kan eksplicit få adgang til nøgleværdipar på kortet, som giver endnu mere læselig løsning.


#omfatte
#omfatte
#omfatte
ved hjælp af namespace std;
int main ()
// Initialiser et kort
kort countryCapitalMap;
// Indsæt forskellige elementer på kortet
countryCapitalMap.indsæt (par("Indien", "Delhi"));
countryCapitalMap.indsæt (par("Nepal", "Kathmandu"));
countryCapitalMap.indsæt (par("Kina", "Beijing"));
countryCapitalMap.indsæt (par("Frankrig", "Paris");
// Iterér ved hjælp af iterator in for loop
for (const auto & [nøgle, værdi]: countryCapitalMap)
cout << key << ":" << value << "\n";

returnere 0;


Produktion:
Kina: Beijing
Frankrig: Paris
Indien: Delhi
Nepal: Kathmandu

Det handler om, hvordan man gentager sig over kortet i C++. Glad kodning!

Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...