C ++

Hur man itererar över kartan i C ++

Hur man itererar över kartan i C ++
I den här snabbhandledningen kommer vi att se hur man upprepar på kartan i C++.

Det finns flera sätt att itera över kartan i C++. Med nyare versioner av C ++ finns det mer avancerade sätt att itera över kartan i C++.

Låt oss gå igenom var och en efter en.

Använda för loop med stp :: karta

Vi har skapat en karta med namnet countryCapitalMap och infogade nyckel-värdepar till den.


#omfatta
#omfatta
#omfatta
#omfatta
#omfatta
använder namnrymd std;
int main ()
// Initiera en karta
karta> "Indien", "Delhi"));
countryCapitalMap.infoga (par("Nepal", "Katmandu"));
countryCapitalMap.infoga (par("Kina", "Peking"));
countryCapitalMap.infoga (par("Frankrike", "Paris"));
// Iterera med iterator in for loop
för (auto itr = countryCapitalMap.Börja(); itr != countryCapitalMap.slutet(); itr ++)

std :: cout << itr->första // Åtkomstnyckel
<< ':'
<< itr->andra // Åtkomstvärde
<< std::endl;

returnera 0;


Produktion:

Kina: Peking
Frankrike: Paris
Indien: Delhi
Nepal: Katmandu

Som du kan se har vi tryckt country: capital (key: value) med hjälp av for loop.

Om du märker, har vi använt bil typspecifikator för karta iterator på grund av läsbarhet. Du kan använda Karta:: iterator uttryckligen också.
Notera: Om du ser utdata sorteras den efter tangenter i stigande ordning. Detta beror på att std :: map är en sorterad associerande behållare med medföljande komparator (version C ++ 11 och framåt). Eftersom vi inte tillhandahöll någon komparator så har C ++ använt standardkomparator för sträng.

Används medan loop med stp :: karta

Vi kan också använda en while-loop istället för for loop.


#omfatta
#omfatta
#omfatta
#omfatta >
använder namnrymd std;
int main ()
// Initiera en karta
Karta countryCapitalMap;
// Infoga olika element i kartan
countryCapitalMap.infoga (par("Indien", "Delhi");
countryCapitalMap.infoga (par("Nepal", "Katmandu"));
countryCapitalMap.infoga (par("Kina", "Peking"));
countryCapitalMap.infoga (par("Frankrike", "Paris"));
// Skapa en iterator för kartan och initialisera med börja
auto itr = countryCapitalMap.Börja();
// Iterera med iterator in while loop
medan (itr!= countryCapitalMap.slutet())

std :: cout << itr->första // Åtkomstnyckel
<< ':'
<< itr->andra // Åtkomstvärde
<< std::endl;
itr ++;

returnera 0;


Produktion:

Kina: Peking
Frankrike: Paris
Indien: Delhi
Nepal: Katmandu

Använda Range based for loop (C ++ 11-version och senare)

Om du använder C ++ 11-versionen är det här det mest eleganta sättet att itera över karta i C++. Du kan undvika traditionella kubiska slingor och använda detta istället.


#omfatta
#omfatta
#omfatta
använder namnrymd std;
int main ()
// Initiera en karta
Karta countryCapitalMap;
// Infoga olika element i kartan
countryCapitalMap.infoga (par("Indien", "Delhi");
countryCapitalMap.infoga (par("Nepal", "Katmandu"));
countryCapitalMap.infoga (par("Kina", "Peking"));
countryCapitalMap.infoga (par("Frankrike", "Paris"));
// Iterera med iterator in for loop
för (const auto & ele: countryCapitalMap)
cout <
returnera 0;


Produktion:
Kina: Peking
Frankrike: Paris
Indien: Delhi
Nepal: Katmandu

Använda intervallbaserat för loop med nyckel-värden par (C ++ 17 version och framåt)

Denna version stöds från c ++ 17 och framåt och ger ett mer flexibelt sätt för iterering över kartan. Du kan uttryckligen komma åt nyckel-värden par i kartan som ger ännu mer läsbar lösning.


#omfatta
#omfatta
#omfatta
använder namnrymd std;
int main ()
// Initiera en karta
Karta countryCapitalMap;
// Infoga olika element i kartan
countryCapitalMap.infoga (par("Indien", "Delhi");
countryCapitalMap.infoga (par("Nepal", "Katmandu"));
countryCapitalMap.infoga (par("Kina", "Peking"));
countryCapitalMap.infoga (par("Frankrike", "Paris");
// Iterera med iterator in for loop
för (const auto & [key, value]: countryCapitalMap)
cout << key << ":" << value << "\n";

returnera 0;


Produktion:
Kina: Peking
Frankrike: Paris
Indien: Delhi
Nepal: Katmandu

Det handlar om hur man itererar över kartan i C++. Lycklig kodning!

Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...
Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...