C++

Hoe de kaart te herhalen in C++

Hoe de kaart te herhalen in C++
In deze korte zelfstudie zullen we zien hoe u op de kaart in C . kunt herhalen++.

Er zijn meerdere manieren om de kaart in C . te herhalen++. Met nieuwere versies van C++ zijn er meer geavanceerde manieren om over de kaart te itereren in C++.

Laten we ze stuk voor stuk doornemen.

For-lus gebruiken met stp::map

We hebben een kaart gemaakt met de naam landHoofdstadKaart en er sleutel-waardeparen aan ingevoegd.


#include
#include
#include
#include
#include
namespace std; gebruiken;
int hoofd()
// Initialiseer een kaart
kaart>"India", "Delhi"));
landHoofdstadKaart.invoegen (paar)("Nepal", "Kathmandu"));
landHoofdstadKaart.invoegen (paar)("China", "Peking"));
landHoofdstadKaart.invoegen (paar)("Frankrijk", "Parijs"));
// Herhaal met iterator in for loop
voor (auto itr = countryCapitalMap.beginnen(); itr != landHoofdstadkaart.einde(); itr++)

standaard::cout << itr->eerste // Toegangssleutel
<< ':'
<< itr->tweede // Toegangswaarde
<< std::endl;

retourneer 0;


Uitgang:

China: Peking
Frankrijk:Parijs
India:Delhi
Nepal:Kathmandu

Zoals u kunt zien, hebben we land: hoofdletter (sleutel: waarde) afgedrukt met for loop.

Als je merkt, hebben we gebruikt auto type specificatie voor kaart iterator vanwege leesbaarheid. Je kunt gebruiken kaart::iterator expliciet ook.
Opmerking: Als u de uitvoer ziet, wordt deze gesorteerd op toetsen in oplopende volgorde. Dit komt omdat std::map een gesorteerde associatieve container is met de meegeleverde Comparator (versie C++11 en later). Omdat we geen comparator hebben geleverd, heeft C++ de standaard Comparator voor string gebruikt.

While-lus gebruiken met stp::map

We kunnen ook een while-lus gebruiken in plaats van een for-lus.


#include
#include
#include
#include >
namespace std; gebruiken;
int hoofd()
// Initialiseer een kaart
kaart landKaart;
// Voeg verschillende elementen in op de kaart
landHoofdstadKaart.invoegen (paar)("India", "Delhi"));
landHoofdstadKaart.invoegen (paar)("Nepal", "Kathmandu"));
landHoofdstadKaart.invoegen (paar)("China", "Peking"));
landHoofdstadKaart.invoegen (paar)("Frankrijk", "Parijs"));
// Maak een iterator voor de kaart en initialiseer met begin
auto itr=countryCapitalMap.beginnen();
// Herhaal iterator in while-lus
terwijl (itr!=landhoofdstadkaart.einde())

standaard::cout << itr->eerste // Toegangssleutel
<< ':'
<< itr->tweede // Toegangswaarde
<< std::endl;
itr++;

retourneer 0;


Uitgang:

China: Peking
Frankrijk:Parijs
India:Delhi
Nepal:Kathmandu

Range based for loop gebruiken (C++11 versie en later)

Als u de C++11-versie gebruikt, is dit de meest elegante manier om de kaart in C . te herhalen++. Je kunt traditionele, kubieke loops vermijden en in plaats daarvan deze gebruiken.


#include
#include
#include
namespace std; gebruiken;
int hoofd()
// Initialiseer een kaart
kaart landKaart;
// Voeg verschillende elementen in op de kaart
landHoofdstadKaart.invoegen (paar)("India", "Delhi"));
landHoofdstadKaart.invoegen (paar)("Nepal", "Kathmandu"));
landHoofdstadKaart.invoegen (paar)("China", "Peking"));
landHoofdstadKaart.invoegen (paar)("Frankrijk", "Parijs"));
// Herhaal iterator in for loop
for (const auto &ele : countryCapitalMap)
cout <
retourneer 0;


Uitgang:
China: Peking
Frankrijk:Parijs
India:Delhi
Nepal:Kathmandu

Op bereik gebaseerde for-lus gebruiken met sleutel-waardenparen (C++17-versie en later)

Deze versie wordt ondersteund vanaf c++17 en biedt een flexibelere manier om over de kaart te itereren. U kunt expliciet toegang krijgen tot sleutel-waardenpaar op de kaart, wat een nog beter leesbare oplossing biedt.


#include
#include
#include
namespace std; gebruiken;
int hoofd()
// Initialiseer een kaart
kaart landKaart;
// Voeg verschillende elementen in op de kaart
landHoofdstadKaart.invoegen (paar)("India", "Delhi"));
landHoofdstadKaart.invoegen (paar)("Nepal", "Kathmandu"));
landHoofdstadKaart.invoegen (paar)("China", "Peking"));
landHoofdstadKaart.invoegen (paar)("Frankrijk", "Parijs"));
// Herhaal iterator in for loop
for (const auto& [sleutel, waarde]: countryCapitalMap)
cout << key << ":" << value << "\n";

retourneer 0;


Uitgang:
China: Peking
Frankrijk:Parijs
India:Delhi
Nepal:Kathmandu

Dat is alles over het herhalen van de kaart in C++. Gelukkig coderen!

OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creƫren. U begint e...
SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...
Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...