Używanie do pętli ze std :: mapa
Stworzyliśmy mapę o nazwie countrycapitalmap i włożyłem do niego pary wartości kluczowej. Następnie używamy iteratora do wykonania pętli za pośrednictwem członków struktury danych mapy.
#włączaćWyjście:
#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
// Zainicjuj mapę
mapacountrycapitalmap;
countrycapitalmap.Wstaw (para(„Nepal”, „Katmandu”));
countrycapitalmap.Wstaw (para(„Chiny”, „Pekin”));
countrycapitalmap.Wstaw (para(„Francja”, „Paryż”));
// iterate za pomocą iteratora do pętli
dla (auto iTr = countrycapitalMap.zaczynać();
ITR != countrycapitalMap.koniec(); ITR ++)
STD :: Cout << itr->Pierwszy // Klucz dostępu
<< ':'
<< itr->Druga // wartość dostępu
<< std::endl;
powrót 0;
Jak widać, wydrukowaliśmy kraj: Capital (klucz: wartość) Używanie do pętli.
Jeśli zauważysz, użyliśmy automatyczny Specyfikator typu dla iteratora map z powodu czytelności. Możesz użyć Map :: Iterator Już wyraźnie.
Notatka: Jeśli widzisz wyjście, jest ono sortowane według kluczy w kolejności rosnącej. Wynika to z faktu, że STD :: Map to posortowany kontener asocjacyjny z dostarczonym komparatorem (wersja C ++ 11). Ponieważ nie dostarczyliśmy żadnego komparatora, więc C ++ użył domyślnego komparatora dla ciągu.
Korzystanie z pętli ze STP :: mapa
Możemy również użyć pętli white zamiast do pętli.
#włączać
#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
// Zainicjuj mapę
mapacountrycapitalmap;
// Wstaw różne elementy na mapie
countrycapitalmap.Wstaw (para(„Indie”, „Delhi”));
countrycapitalmap.Wstaw (para(„Nepal”, „Katmandu”));
countrycapitalmap.Wstaw (para(„Chiny”, „Pekin”));
countrycapitalmap.Wstaw (para(„Francja”, „Paryż”));
// Utwórz iterator mapy i zainicjuj z początkiem
auto ITR = countrycapitalMap.zaczynać();
// iteruj za pomocą iteratora w pobycie
While (ITR!= countrycapitalMap.koniec())
STD :: Cout << itr->Pierwszy // Klucz dostępu
<< ':'
<< itr->Druga // wartość dostępu
<< std::endl;
ITR ++;
powrót 0;
Wyjście:
Chiny: PekinKorzystanie z zakresu opartego na pętli (dalej wersja C ++ 11)
Jeśli używasz wersji C ++ 11, jest to najbardziej elegancki sposób na iterowanie mapy w C++. Możesz uniknąć tradycyjnych pętli kubeszorskich i zamiast tego użyć tego.
#włączaćWyjście:
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
// Zainicjuj mapę
mapacountrycapitalmap;
// Wstaw różne elementy na mapie
countrycapitalmap.Wstaw (para(„Indie”, „Delhi”));
countrycapitalmap.Wstaw (para(„Nepal”, „Katmandu”));
countrycapitalmap.Wstaw (para(„Chiny”, „Pekin”));
countrycapitalmap.Wstaw (para(„Francja”, „Paryż”));
// iterate za pomocą iteratora do pętli
dla (const auto & ele: countrycapitalMap)
Cout <
powrót 0;
Używając zasięgu dla pętli z parami kluczów (wersja C ++ 17)
Ta wersja jest obsługiwana od C ++ 17 i zapewnia bardziej elastyczny sposób iteracji nad mapą. Możesz wyraźnie uzyskać dostęp do pary kluczowych wartości na mapie, która zapewnia jeszcze bardziej czytelne rozwiązanie.
#włączaćWyjście:
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
// Zainicjuj mapę
mapacountrycapitalmap;
// Wstaw różne elementy na mapie
countrycapitalmap.Wstaw (para(„Indie”, „Delhi”));
countrycapitalmap.Wstaw (para(„Nepal”, „Katmandu”));
countrycapitalmap.Wstaw (para(„Chiny”, „Pekin”));
countrycapitalmap.Wstaw (para(„Francja”, „Paryż”));
// iterate za pomocą iteratora do pętli
dla (const auto i [klucz, wartość]: countrycapitalMap)
Cout << key << ":" << value << "\n";
powrót 0;
Chodzi o to, jak iterować mapę w c++.