C ++

Kuinka toistaa karttaa C ++ ssa

Kuinka toistaa karttaa C ++ ssa
Tässä pikaoppaassa näemme kuinka iteroida kartalla C: ssä++.

On useita tapoja toistaa karttaa C: ssä++. C ++: n uudemmissa versioissa on edistyneempiä tapoja iteroida kartan yli C: ssä++.

Käydään läpi kukin yksitellen.

Käyttäminen silmukalle, jossa on stp :: map

Olemme luoneet kartan nimeltä countryCapitalKartta ja lisäsi siihen avainarvoparit.


#sisältää
#sisältää
#sisältää
#sisältää
#sisältää
käyttämällä nimitilaa vakio;
int main ()
// Alusta kartta
kartta> "Intia", "Delhi"));
countryCapitalKartta.lisää (pari("Nepal", "Kathmandu"));
countryCapitalKartta.lisää (pari("Kiina", "Peking"));
countryCapitalKartta.lisää (pari("Ranska", "Pariisi"));
// Toista käyttämällä iteraattoria silmukassa
kohteelle (auto itr = countryCapitalMap.alkaa(); itr != countryCapitalMap.loppu (); itr ++)

vakio :: cout << itr->ensimmäinen // pääsyavain
<< ':'
<< itr->toinen // Käyttöarvo
<< std::endl;

paluu 0;


Tuotos:

Kiina: Peking
Ranska: Pariisi
Intia: Delhi
Nepal: Kathmandu

Kuten näette, olemme tulostaneet maa: pääoma (avain: arvo) silmukalle.

Jos huomaat, olemme käyttäneet auto tyypin määrittelijä karttatoistimelle luettavuuden vuoksi. Voit käyttää kartta:: iteraattori myös nimenomaisesti.
merkintä: Jos näet lähdön, se on lajiteltu avainten mukaan nousevassa järjestyksessä. Tämä johtuu siitä, että std :: map on lajiteltu assosiatiivinen säilö mukana toimitetulla vertailijalla (versio C ++ 11 alkaen). Koska emme toimittaneet yhtään vertailua, C ++ on käyttänyt merkkijonoon oletusvertailijaa.

While-silmukan käyttäminen stp :: mapin kanssa

Voimme käyttää myös while-silmukkaa silmukan sijaan.


#sisältää
#sisältää
#sisältää
#sisältää >
käyttämällä nimitilaa vakio;
int main ()
// Alusta kartta
kartta countryCapitalMap;
// Lisää erilaisia ​​elementtejä karttaan
countryCapitalKartta.lisää (pari("Intia", "Delhi"));
countryCapitalKartta.lisää (pari("Nepal", "Kathmandu"));
countryCapitalKartta.lisää (pari("Kiina", "Peking"));
countryCapitalKartta.lisää (pari("Ranska", "Pariisi"));
// Luo kartalle iteraattori ja alusta alusta
auto itr = countryCapitalMap.alkaa();
// Iterate iterator in while -silmukan avulla
kun (itr!= countryCapitalMap.loppu ())

vakio :: cout << itr->ensimmäinen // pääsyavain
<< ':'
<< itr->toinen // Käyttöarvo
<< std::endl;
itr ++;

paluu 0;


Tuotos:

Kiina: Peking
Ranska: Pariisi
Intia: Delhi
Nepal: Kathmandu

Alueen perustaminen silmukalle (C ++ 11 -versio)

Jos käytät C ++ 11 -versiota, tämä on tyylikkäin tapa toistaa kartan yli C: ssä++. Voit välttää perinteisiä cubersome-silmukoita ja käyttää tätä.


#sisältää
#sisältää
#sisältää
käyttämällä nimitilaa vakio;
int main ()
// Alusta kartta
kartta countryCapitalMap;
// Lisää erilaisia ​​elementtejä karttaan
countryCapitalKartta.lisää (pari("Intia", "Delhi"));
countryCapitalKartta.lisää (pari("Nepal", "Kathmandu"));
countryCapitalKartta.lisää (pari("Kiina", "Peking"));
countryCapitalKartta.lisää (pari("Ranska", "Pariisi"));
// Toista käyttämällä iteraattoria silmukassa
kohteelle (const auto & ele: countryCapitalMap)
cout <
paluu 0;


Tuotos:
Kiina: Peking
Ranska: Pariisi
Intia: Delhi
Nepal: Kathmandu

Aluepohjaisen käyttö silmukassa avainarvoparien kanssa (C ++ 17 -versio)

Tätä versiota tuetaan vuodesta c ++ 17 lähtien, ja se tarjoaa joustavamman tavan kartoittaa karttaa. Voit käyttää nimenomaisesti avainarvoparia kartalla, joka tarjoaa entistä luettavamman ratkaisun.


#sisältää
#sisältää
#sisältää
käyttämällä nimitilaa vakio;
int main ()
// Alusta kartta
kartta countryCapitalMap;
// Lisää erilaisia ​​elementtejä karttaan
countryCapitalKartta.lisää (pari("Intia", "Delhi"));
countryCapitalKartta.lisää (pari("Nepal", "Kathmandu"));
countryCapitalKartta.lisää (pari("Kiina", "Peking"));
countryCapitalKartta.lisää (pari("Ranska", "Pariisi"));
// Toista käyttämällä iteraattoria silmukassa
kohteelle (const auto & [avain, arvo]: countryCapitalMap)
cout << key << ":" << value << "\n";

paluu 0;


Tuotos:
Kiina: Peking
Ranska: Pariisi
Intia: Delhi
Nepal: Kathmandu

Siinä kaikki siitä, miten iteroida kartan yli C: ssä++. Hyvää koodausta!

Kuinka Xdotoolia käytetään stimuloimaan hiiren napsautuksia ja näppäilyjä Linuxissa
Xdotool on ilmainen ja avoimen lähdekoodin komentorivityökalu hiiren napsautusten ja näppäimistön simulointiin. Tässä artikkelissa käsitellään lyhyttä...
Viisi parasta ergonomista tietokonehiirtä Linux-tuotteille
Aiheuttaako pitkäaikainen tietokoneen käyttö kipua ranteessasi tai sormissasi?? Onko sinulla nivelten jäykkyys ja sinun on jatkuvasti ravistettava kät...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...