C ++

Kako prelaziti preko karte u C ++

Kako prelaziti preko karte u C ++
U ovom brzom vodiču vidjet ćemo kako se iterirati na karti u C-u++.

Postoji više načina za prelazak preko karte u C-u++. S novijim verzijama C ++-a postoje napredniji načini prevođenja po karti u C-u++.

Prođimo svaki po jedan.

Korištenje for petlje sa stp :: map

Izradili smo mapu s imenom countryCapitalMap i u njega umetnuli parove ključ / vrijednost.


#include
#include
#include
#include
#include
pomoću prostora imena std;
int main ()
// Inicijalizirajte kartu
karta> "Indija", "Delhi"));
countryCapitalMap.umetak (par("Nepal", "Kathmandu"));
countryCapitalMap.umetak (par("Kina", "Peking"));
countryCapitalMap.umetak (par("Francuska", "Pariz"));
// Iteracija pomoću iteratora u petlji for
za (auto itr = countryCapitalMap.početi(); itr != countryCapitalMap.kraj(); itr ++)

std :: cout << itr->prvo // tipka za pristup
<< ':'
<< itr->drugi // Vrijednost pristupa
<< std::endl;

return 0;


Izlaz:

Kina: Peking
Francuska: Pariz
Indija: Delhi
Nepal: Kathmandu

Kao što vidite, ispisali smo country: capital (ključ: vrijednost) pomoću for petlje.

Ako primijetite, koristili smo auto specifikator tipa za iterator karte zbog čitljivosti. Možeš koristiti karta:: iterator eksplicitno također.
Bilješka: Ako vidite izlaz, sortiran je prema tipkama u uzlaznom redoslijedu. To je zato što je std :: map razvrstani asocijativni spremnik s isporučenim usporednikom (verzija C ++ 11 nadalje). Budući da nismo osigurali nijednu usporedbu, pa je C ++ za zadani niz upotrijebio zadani Usporednik.

Korištenje while petlje sa stp :: mapom

Također možemo koristiti while petlju umjesto for petlje.


#include
#include
#include
#include >
pomoću prostora imena std;
int main ()
// Inicijalizirajte kartu
karta countryCapitalMap;
// Umetanje različitih elemenata u kartu
countryCapitalMap.umetak (par("Indija", "Delhi"));
countryCapitalMap.umetak (par("Nepal", "Kathmandu"));
countryCapitalMap.umetak (par("Kina", "Peking"));
countryCapitalMap.umetak (par("Francuska", "Pariz"));
// Izradite iterator za kartu i inicijalizirajte sa begin
auto itr = countryCapitalMap.početi();
// Iteracija pomoću iteratora u while petlji
dok (itr!= countryCapitalMap.kraj())

std :: cout << itr->prvo // tipka za pristup
<< ':'
<< itr->drugo // Vrijednost pristupa
<< std::endl;
itr ++;

povratak 0;


Izlaz:

Kina: Peking
Francuska: Pariz
Indija: Delhi
Nepal: Kathmandu

Korištenje raspona temeljenog na petlji (verzija C ++ 11 nadalje)

Ako koristite verziju C ++ 11, onda je ovo najelegantniji način itiranja preko karte u C-u++. Možete izbjeći tradicionalne kubarne petlje i umjesto toga ih upotrijebiti.


#include
#include
#include
pomoću prostora imena std;
int main ()
// Inicijalizirajte kartu
karta countryCapitalMap;
// Umetanje različitih elemenata u kartu
countryCapitalMap.umetak (par("Indija", "Delhi"));
countryCapitalMap.umetak (par("Nepal", "Kathmandu"));
countryCapitalMap.umetak (par("Kina", "Peking"));
countryCapitalMap.umetak (par("Francuska", "Pariz"));
// Iteracija pomoću iteratora u petlji for
za (const auto & ele: countryCapitalMap)
cout <
povratak 0;


Izlaz:
Kina: Peking
Francuska: Pariz
Indija: Delhi
Nepal: Kathmandu

Korištenje petlje temeljene na rasponu s parovima ključ / vrijednost (verzija C ++ 17 nadalje)

Ova je verzija podržana od c ++ 17 nadalje i pruža fleksibilniji način za iteraciju po karti. Možete izričito pristupiti paru ključ / vrijednost na mapi koji pruža još čitljivije rješenje.


#include
#include
#include
pomoću prostora imena std;
int main ()
// Inicijalizirajte kartu
karta countryCapitalMap;
// Umetanje različitih elemenata u kartu
countryCapitalMap.umetak (par("Indija", "Delhi"));
countryCapitalMap.umetak (par("Nepal", "Kathmandu"));
countryCapitalMap.umetak (par("Kina", "Peking"));
countryCapitalMap.umetak (par("Francuska", "Pariz"));
// Iteracija pomoću iteratora u petlji for
za (const auto & [ključ, vrijednost]: countryCapitalMap)
cout << key << ":" << value << "\n";

povratak 0;


Izlaz:
Kina: Peking
Francuska: Pariz
Indija: Delhi
Nepal: Kathmandu

To je sve o tome kako prelaziti preko karte u C-u++. Sretno kodiranje!

Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...
OpenTTD vs Simutrans
Stvaranje vlastite simulacije prijevoza može biti zabavno, opuštajuće i izuzetno primamljivo. Zbog toga morate isprobati što više igara kako biste pro...
Vodič za OpenTTD
OpenTTD je jedna od najpopularnijih igara za poslovnu simulaciju. U ovoj igri morate stvoriti prekrasan prijevoznički posao. Međutim, počet ćete u poč...