Postoji više načina za ponavljanje karte u C ++. S novijim verzijama C ++, postoje napredniji načini za ponavljanje karte u C ++.
Prođimo svaki po jedan.
Korištenje for petlje sa stp :: map
Napravili smo kartu s imenom | _+_ | i u njega umetnuli parove ključ-vrijednost.
<za>
#uključi
#uključi
#uključi
#uključi
#uključi
koristeći imenski prostorsati;
intglavni() {
// Inicijalizacija karte
karta>'Indija','Delhi'));
countryCapitalMap.umetnuti(par<niz, niz>('Nepal','Katmandu'));
countryCapitalMap.umetnuti(par<niz, niz>('Kina','Peking'));
countryCapitalMap.umetnuti(par<niz, niz>('Francuska','Pariz'));
// Iteracija pomoću iteratora u for petlji
za (autoitr=countryCapitalMap.početi();itr!=countryCapitalMap.kraj();itr++)
{
sati::trošak <<itr->prvi// Pristupni ključ
<< ':'
<<itr->drugi// Pristupna vrijednost
<<sati::endl;
}
povratak 0;
}
</za>
Izlaz:
<za>
Kina:Peking
Francuska:Pariz
Indija:Delhi
Nepal:Katmandu
</za>
Kao što vidite, ispisali smo country: capital (key: value) pomoću for petlje.
Ako primijetite, koristili smo | _+_ | specifikator tipa za iterator karte zbog čitljivosti. Možete koristiti | _+_ | izričito također.
Bilješka: Ako vidite izlaz, sortiran je po ključevima u rastućem redoslijedu. To je zato što je std :: map sortirani asocijativni spremnik s isporučenim komparatorom (verzija C ++ 11 nadalje). Budući da nismo naveli usporedbu, pa je C ++ upotrijebio zadani usporednik za niz.
Korištenje while petlje sa stp :: map
Također možemo upotrijebiti while petlju umjesto for petlje.
<za>
#uključi
#uključi
#uključi
#uključi>
koristeći imenski prostorsati;
intglavni() {
// Inicijalizacija karte
karta<niz, niz>countryCapitalMap;
// Umetanje različitih elemenata u kartu
countryCapitalMap.umetnuti(par<niz, niz>('Indija','Delhi'));
countryCapitalMap.umetnuti(par<niz, niz>('Nepal','Katmandu'));
countryCapitalMap.umetnuti(par<niz, niz>('Kina','Peking'));
countryCapitalMap.umetnuti(par<niz, niz>('Francuska','Pariz'));
// Kreiramo iterator za kartu i Inicijaliziramo s begin
autoitr=countryCapitalMap.početi();
// Iteracija pomoću iteratora u while petlji
dok (itr!=countryCapitalMap.kraj())
{
sati::trošak <<itr->prvi// Pristupni ključ
<< ':'
<<itr->drugi// Pristupna vrijednost
<<sati::endl;
itr++;
}
povratak 0;
}
</za>
Izlaz:
<za>
Kina:Peking
Francuska:Pariz
Indija:Delhi
Nepal:Katmandu
</za>
Korištenje raspona zasnovanog na petlji (verzija od C ++ 11 nadalje)
Ako koristite verziju C ++ 11, ovo je najelegantniji način za ponavljanje karte u C ++. Možete izbjeći tradicionalne sitne petlje i upotrijebiti ovo umjesto toga.
<za>#uključi
#uključi
#uključi
koristeći imenski prostorsati;
intglavni() {
// Inicijalizacija karte
karta<niz, niz>countryCapitalMap;
// Umetanje različitih elemenata u kartu
countryCapitalMap.umetnuti(par<niz, niz>('Indija','Delhi'));
countryCapitalMap.umetnuti(par<niz, niz>('Nepal','Katmandu'));
countryCapitalMap.umetnuti(par<niz, niz>('Kina','Peking'));
countryCapitalMap.umetnuti(par<niz, niz>('Francuska','Pariz'));
// Iteracija pomoću iteratora u for petlji
za (konst auto &on:countryCapitalMap) {
trošak <<on.prvi << ':' <<on.drugi<<' n';
}
povratak 0;
}
</za>
Izlaz:
Kina:Peking
Francuska:Pariz
Indija:Delhi
Nepal:Katmandu
Korištenje petlje na temelju raspona s parovima ključ / vrijednost (verzija C ++ 17 nadalje)
Ova verzija je podržana od c ++ 17 nadalje i pruža fleksibilniji način za ponavljanje po karti. U karti možete izričito pristupiti paru ključ-vrijednost koji pruža još čitljivije rješenje.
<za>#uključi
#uključi
#uključi
koristeći imenski prostorsati;
intglavni() {
// Inicijalizacija karte
karta<niz, niz>countryCapitalMap;
// Umetanje različitih elemenata u kartu
countryCapitalMap.umetnuti(par<niz, niz>('Indija','Delhi'));
countryCapitalMap.umetnuti(par<niz, niz>('Nepal','Katmandu'));
countryCapitalMap.umetnuti(par<niz, niz>('Kina','Peking'));
countryCapitalMap.umetnuti(par<niz, niz>('Francuska','Pariz'));
// Iteracija pomoću iteratora u for petlji
za (konst auto& [ključ, vrijednost] :countryCapitalMap) {
trošak <<ključ<< ':' <<vrijednost<< ' n';
}
povratak 0;
}
</za>
Izlaz:
Kina:Peking
Francuska:Pariz
Indija:Delhi
Nepal:Katmandu
To je sve o tome kako ponoviti kartu u C ++. Sretno kodiranje!