C ++

Hogyan kell iterálni a térképen C ++ nyelven?

Hogyan kell iterálni a térképen C ++ nyelven?
Ebben a gyors bemutatóban meglátjuk, hogyan kell iterálni a térképen a C-ben++.

Többféle módon lehet iterálni a térképen a C-ben++. A C ++ újabb verzióival fejlettebb módszerek vannak a térképen történő iterációra a C-ben++.

Menjünk végig egyesével.

Használat a hurokhoz stp :: map-tal

Létrehoztunk egy nevű térképet countryCapitalMap és kulcs-érték párokat illesztett hozzá.


#include
#include
#include
#include
#include
névtér használatával std;
int main ()
// Inicializálja a térképet
térkép> "India", "Delhi"));
countryCapitalMap.betét (pár("Nepál", "Katmandu"));
countryCapitalMap.betét (pár("Kína", "Peking"));
countryCapitalMap.betét (pár("Franciaország", "Párizs"));
// Iterálás az iterátor használatával a ciklushoz
for (auto itr = countryCapitalMap.kezdődik(); itr != countryCapitalMap.vége (); itr ++)

std :: cout << itr->első // Hozzáférési kulcs
<< ':'
<< itr->második // Hozzáférési érték
<< std::endl;

visszatér 0;


Kimenet:

Kína: Peking
Franciaország: Párizs
India: Delhi
Nepál: Katmandu

Amint láthatja, a ciklust használva kinyomtattuk az ország: tőke (kulcs: érték) értéket.

Ha észreveszi, használtuk auto a térkép-iterátor típusmeghatározója az olvashatóság miatt. Te tudod használni térkép:: iterátor kifejezetten is.
Jegyzet: Ha látja a kimenetet, a kulcsok növekvő sorrendben rendezik. Ez azért van, mert az std :: map egy szortírozott asszociatív tároló a mellékelt Comparatorral (C ++ 11 verziótól kezdve). Mivel nem adtunk összehasonlítót, a C ++ az alapértelmezett Comparator-ot használta a karakterlánchoz.

A while ciklus használata stp :: térképpel

A hurok helyett használhatunk egy darab ciklust is.


#include
#include
#include
#include >
névtér használata std;
int main ()
// Inicializálja a térképet
térkép countryCapitalMap;
// Különböző elemek beszúrása a térképbe
countryCapitalMap.betét (pár("India", "Delhi"));
countryCapitalMap.betét (pár("Nepál", "Katmandu"));
countryCapitalMap.betét (pár("Kína", "Peking"));
countryCapitalMap.betét (pár("Franciaország", "Párizs"));
// Hozzon létre egy iterátort a térképhez, és inicializálja a kezdettel
auto itr = countryCapitalMap.kezdődik();
// Az iterátor használata a while ciklusban
míg (itr!= countryCapitalMap.vége ())

std :: cout << itr->első // Hozzáférési kulcs
<< ':'
<< itr->második // Hozzáférési érték
<< std::endl;
itr ++;

visszatér 0;


Kimenet:

Kína: Peking
Franciaország: Párizs
India: Delhi
Nepál: Katmandu

A hurok alapú tartomány használata (C ++ 11 verziótól kezdve)

Ha C ++ 11 verziót használ, akkor ez a legelegánsabb módszer a C térképen történő iterációra++. Kerülheti a hagyományos köbös hurkokat, és ezt használja.


#include
#include
#include
névtér használata std;
int main ()
// Inicializálja a térképet
térkép countryCapitalMap;
// Különböző elemek beszúrása a térképbe
countryCapitalMap.betét (pár("India", "Delhi"));
countryCapitalMap.betét (pár("Nepál", "Katmandu"));
countryCapitalMap.betét (pár("Kína", "Peking"));
countryCapitalMap.betét (pár("Franciaország", "Párizs"));
// Iterálás az iterátor használatával a ciklushoz
for (const auto & ele: countryCapitalMap)
cout <
visszatér 0;


Kimenet:
Kína: Peking
Franciaország: Párizs
India: Delhi
Nepál: Katmandu

Tartományalapú használata hurokhoz kulcsérték-párokkal (C ++ 17 verziótól kezdve)

Ez a verzió c ++ 17-től kezdődően támogatott, és rugalmasabb módot kínál a térképen történő iterációra. A térképen kifejezetten hozzáférhet a kulcs-érték párhoz, amely még olvashatóbb megoldást nyújt.


#include
#include
#include
névtér használatával std;
int main ()
// Inicializálja a térképet
térkép countryCapitalMap;
// Különböző elemek beszúrása a térképbe
countryCapitalMap.betét (pár("India", "Delhi"));
countryCapitalMap.betét (pár("Nepál", "Katmandu"));
countryCapitalMap.betét (pár("Kína", "Peking"));
countryCapitalMap.betét (pár("Franciaország", "Párizs"));
// Iterálás az iterátor használatával a ciklushoz
for (const auto & [kulcs, érték]: countryCapitalMap)
cout << key << ":" << value << "\n";

visszatér 0;


Kimenet:
Kína: Peking
Franciaország: Párizs
India: Delhi
Nepál: Katmandu

Ennyit arról, hogyan kell iterálni a térképen C-ben++. Boldog kódolás!

Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...
OpenTTD vs Simutrans
Saját közlekedési szimuláció létrehozása szórakoztató, pihentető és rendkívül csábító lehet. Ezért meg kell győződnie arról, hogy a lehető legtöbb ját...
OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...