Kako ponoviti zemljevid v C ++

How Iterate Over Map C



V tej hitri vadnici bomo videli, kako se v zemljevidu v C ++ ponavljati.

Obstaja več načinov za ponovitev zemljevida v C ++. Z novejšimi različicami C ++ obstajajo naprednejši načini za ponovitev zemljevida v C ++.







Pojdimo skozi vsakega posebej.



Uporaba zanke for s stp :: map

Ustvarili smo zemljevid z imenom | _+_ | in vanj vstavili pare ključ-vrednost.



<za>
#vključi
#vključi
#vključi
#vključi
#vključi
z uporabo imenski prostorure;
intglavni() {
// Inicializirajte zemljevid
zemljevid>'Indija','Delhi'));
countryCapitalMap.vstavi(par<niz, niz>('Nepal','Katmandu'));
countryCapitalMap.vstavi(par<niz, niz>('Kitajska','Peking'));
countryCapitalMap.vstavi(par<niz, niz>('Francija','Pariz'));

// Ponavljanje z uporabo iteratorja v zanki for
za (samodejnoitr=countryCapitalMap.začeti();itr!=countryCapitalMap.konec();itr++)
{
ure::stroški <<itr->prvi// Dostopni ključ
<< ':'
<<itr->drugič// Dostopna vrednost
<<ure::endl;
}
vrnitev 0;
}
</za>
Izhod:
<za>
Kitajska:Peking
Francija:Pariz
Indija:Delhi
Nepal:Katmandu
</za>

Kot lahko vidite, smo z zanko for natisnili country: capital (key: value).





Če opazite, smo uporabili | _+_ | specifikator vrste za iterator zemljevida zaradi berljivosti. Uporabite lahko | _+_ | tudi izrecno.
Opomba: Če vidite izhod, je razvrščen po ključih v naraščajočem vrstnem redu. To je zato, ker je std :: map razvrščen asociativni vsebnik s priloženim primerjalnikom (različica C ++ 11 naprej). Ker nismo podali nobenega primerjalnika, je C ++ uporabil privzeti primerjalnik za niz.

Uporaba zanke while s stp :: map

Namesto zanke for lahko uporabimo tudi zanko while.



<za>
#vključi
#vključi
#vključi
#vključi>
z uporabo imenski prostorure;
intglavni() {
// Inicializirajte zemljevid
zemljevid<niz, niz>countryCapitalMap;
// V zemljevid vstavimo različne elemente
countryCapitalMap.vstavi(par<niz, niz>('Indija','Delhi'));
countryCapitalMap.vstavi(par<niz, niz>('Nepal','Katmandu'));
countryCapitalMap.vstavi(par<niz, niz>('Kitajska','Peking'));
countryCapitalMap.vstavi(par<niz, niz>('Francija','Pariz'));


// Ustvarjanje iteratorja za zemljevid in Initialize with begin
samodejnoitr=countryCapitalMap.začeti();
// Ponavljanje z uporabo iteratorja v zanki while
medtem (itr!=countryCapitalMap.konec())
{
ure::stroški <<itr->prvi// Dostopni ključ
<< ':'
<<itr->drugič// Dostopna vrednost
<<ure::endl;
itr++;
}
vrnitev 0;
}
</za>
Izhod:
<za>
Kitajska:Peking
Francija:Pariz
Indija:Delhi
Nepal:Katmandu
</za>

Uporaba obsega za zanko (različica C ++ 11 naprej)

Če uporabljate različico C ++ 11, je to najbolj eleganten način za ponovitev zemljevida v C ++. Izognite se tradicionalnim okornim zankam in namesto tega uporabite to.

<za>
#vključi
#vključi
#vključi

z uporabo imenski prostorure;
intglavni() {
// Inicializirajte zemljevid
zemljevid<niz, niz>countryCapitalMap;
// V zemljevid vstavimo različne elemente
countryCapitalMap.vstavi(par<niz, niz>('Indija','Delhi'));
countryCapitalMap.vstavi(par<niz, niz>('Nepal','Katmandu'));
countryCapitalMap.vstavi(par<niz, niz>('Kitajska','Peking'));
countryCapitalMap.vstavi(par<niz, niz>('Francija','Pariz'));


// Ponavljanje z uporabo iteratorja v zanki for
za (const samodejno &on:countryCapitalMap) {
stroški <<on.prvi << ':' <<on.drugič<<' n';
}

vrnitev 0;
}
</za>
Izhod:
Kitajska:Peking
Francija:Pariz
Indija:Delhi
Nepal:Katmandu

Uporaba zanke na podlagi obsega s pari ključ-vrednost (različica C ++ 17 naprej)

Ta različica je podprta od c ++ 17 naprej in ponuja prožnejši način za ponavljanje po zemljevidu. Do izrecnega dostopa do para ključ / vrednost lahko dostopate na zemljevidu, kar ponuja še bolj berljivo rešitev.

<za>
#vključi
#vključi
#vključi

z uporabo imenski prostorure;
intglavni() {
// Inicializirajte zemljevid
zemljevid<niz, niz>countryCapitalMap;
// V zemljevid vstavimo različne elemente
countryCapitalMap.vstavi(par<niz, niz>('Indija','Delhi'));
countryCapitalMap.vstavi(par<niz, niz>('Nepal','Katmandu'));
countryCapitalMap.vstavi(par<niz, niz>('Kitajska','Peking'));
countryCapitalMap.vstavi(par<niz, niz>('Francija','Pariz'));


// Ponavljanje z uporabo iteratorja v zanki for
za (const samodejno& [ključ, vrednost] :countryCapitalMap) {
stroški <<ključ<< ':' <<vrednost<< ' n';
}

vrnitev 0;
}
</za>
Izhod:
Kitajska:Peking
Francija:Pariz
Indija:Delhi
Nepal:Katmandu

To je vse o tem, kako ponoviti zemljevid v C ++. Veselo kodiranje!