Yra keli būdai kartoti žemėlapį naudojant C ++. Naudojant naujesnes C ++ versijas, yra sudėtingesnių būdų kartoti žemėlapį naudojant C ++.
Eikime kiekvieną po vieną.
Naudojimas ciklui su stp :: map
Mes sukūrėme žemėlapį pavadinimu | _+_ | ir į jį įterpė raktų reikšmių poras.
<dėl>
#įtraukti
#įtraukti
#įtraukti
#įtraukti
#įtraukti
naudojant vardų sritisvalandų;
tarptpagrindinis() {
// Inicijuoti žemėlapį
žemėlapis>'Indija',„Delis“));
countryCapitalMap.Įdėti(pora<eilutė, styga>(„Nepalas“,„Katmandu“));
countryCapitalMap.Įdėti(pora<eilutė, styga>('Kinija','Pekinas'));
countryCapitalMap.Įdėti(pora<eilutė, styga>('Prancūzija','Paryžius'));
// Pakartokite naudodami iteratorį ciklui
dėl (automatinisitr=countryCapitalMap.pradėti();itr!=countryCapitalMap.galas();itr++)
{
valandų::kaina <<itr->Pirmas// Prieigos raktas
<< ':'
<<itr->antra// Prieigos vertė
<<valandų::endl;
}
grįžti 0;
}
</dėl>
Išvestis:
<dėl>
Kinija:Pekinas
Prancūzija:Paryžius
Indija:Delis
Nepalas:Katmandu
</dėl>
Kaip matote, mes atspausdinome šalį: kapitalą (raktas: vertė), naudodami ciklą.
Jei pastebėjote, naudojome | _+_ | žemėlapio iteratoriaus tipo specifikacija dėl įskaitomumo. Galite naudoti | _+_ | taip pat aiškiai.
Pastaba: Jei matote išvestį, ji rūšiuojama pagal raktus didėjančia tvarka. Taip yra todėl, kad „std :: map“ yra surūšiuotas asociatyvus sudėtinis rodinys su pateikiamu „Comparator“ (versija C ++ 11 ir vėliau). Kadangi nepateikėme jokio lyginamojo elemento, „C ++“ eilutėms naudojo numatytąjį „Comparator“.
Naudojant while ciklą su stp :: map
Mes taip pat galime naudoti ciklo ciklą, o ne ciklą.
<dėl>
#įtraukti
#įtraukti
#įtraukti
#įtraukti>
naudojant vardų sritisvalandų;
tarptpagrindinis() {
// Inicijuoti žemėlapį
žemėlapis<eilutė, styga>countryCapitalMap;
// Įterpti skirtingus elementus į žemėlapį
countryCapitalMap.Įdėti(pora<eilutė, styga>('Indija',„Delis“));
countryCapitalMap.Įdėti(pora<eilutė, styga>(„Nepalas“,„Katmandu“));
countryCapitalMap.Įdėti(pora<eilutė, styga>('Kinija','Pekinas'));
countryCapitalMap.Įdėti(pora<eilutė, styga>('Prancūzija','Paryžius'));
// Sukurkite žemėlapio kartotuvą ir pradėkite nuo pradžios
automatinisitr=countryCapitalMap.pradėti();
// Pakartokite naudodami iteratorių ciklo metu
tuo tarpu (itr!=countryCapitalMap.galas())
{
valandų::kaina <<itr->Pirmas// Prieigos raktas
<< ':'
<<itr->antra// Prieigos vertė
<<valandų::endl;
itr++;
}
grįžti 0;
}
</dėl>
Išvestis:
<dėl>
Kinija:Pekinas
Prancūzija:Paryžius
Indija:Delis
Nepalas:Katmandu
</dėl>
Naudojant diapazoną pagal kilpą (nuo C ++ 11 versijos)
Jei naudojate C ++ 11 versiją, tai yra pats elegantiškiausias būdas kartoti žemėlapį C ++. Galite išvengti tradicinių kuprinių kilpų ir vietoj to naudoti.
<dėl>#įtraukti
#įtraukti
#įtraukti
naudojant vardų sritisvalandų;
tarptpagrindinis() {
// Inicijuoti žemėlapį
žemėlapis<eilutė, styga>countryCapitalMap;
// Įterpti skirtingus elementus į žemėlapį
countryCapitalMap.Įdėti(pora<eilutė, styga>('Indija',„Delis“));
countryCapitalMap.Įdėti(pora<eilutė, styga>(„Nepalas“,„Katmandu“));
countryCapitalMap.Įdėti(pora<eilutė, styga>('Kinija','Pekinas'));
countryCapitalMap.Įdėti(pora<eilutė, styga>('Prancūzija','Paryžius'));
// Pakartokite naudodami iteratorį ciklui
dėl (konst automatinis &jis:countryCapitalMap) {
kaina <<jis.Pirmas << ':' <<jis.antra<<' n';
}
grįžti 0;
}
</dėl>
Išvestis:
Kinija:Pekinas
Prancūzija:Paryžius
Indija:Delis
Nepalas:Katmandu
Diapazono pagrindo naudojimas ciklui su raktinių verčių poromis (nuo C ++ 17 versijos)
Ši versija palaikoma nuo c ++ 17 ir suteikia lankstesnį būdą kartoti žemėlapį. Žemėlapyje galite aiškiai pasiekti raktinių verčių porą, kuri suteikia dar labiau skaitomą sprendimą.
<dėl>#įtraukti
#įtraukti
#įtraukti
naudojant vardų sritisvalandų;
tarptpagrindinis() {
// Inicijuoti žemėlapį
žemėlapis<eilutė, styga>countryCapitalMap;
// Įterpti skirtingus elementus į žemėlapį
countryCapitalMap.Įdėti(pora<eilutė, styga>('Indija',„Delis“));
countryCapitalMap.Įdėti(pora<eilutė, styga>(„Nepalas“,„Katmandu“));
countryCapitalMap.Įdėti(pora<eilutė, styga>('Kinija','Pekinas'));
countryCapitalMap.Įdėti(pora<eilutė, styga>('Prancūzija','Paryžius'));
// Pakartokite naudodami iteratorį ciklui
dėl (konst automatinis& [raktas, vertė] :countryCapitalMap) {
kaina <<Raktas<< ':' <<vertės<< ' n';
}
grįžti 0;
}
</dėl>
Išvestis:
Kinija:Pekinas
Prancūzija:Paryžius
Indija:Delis
Nepalas:Katmandu
Tai viskas apie tai, kaip kartoti žemėlapį naudojant C ++. Laimingo kodavimo!