Usando para loop com std :: mapa
Nós criamos um mapa nomeado countrycapitalmap e inseriu pares de valor-chave para ele. Em seguida, usamos um iterador para fazer um loop para os membros da estrutura de dados do mapa.
#incluirSaída:
#incluir
#incluir
#incluir
usando namespace std;
int main ()
// Inicialize um mapa
mapacountrycapitalmap;
countrycapitalmap.Insira (par("Nepal", "Kathmandu"));
countrycapitalmap.Insira (par("China", "Pequim"));
countrycapitalmap.Insira (par("França", "Paris"));
// itera usando o iterador para loop
para (Auto Itr = CountryCapitalMap.começar();
itr != countryCapitalMap.fim(); itr ++)
std :: cout << itr->primeiro // chave de acesso
<< ':'
<< itr->Segundo // Valor de Acesso
<< std::endl;
retornar 0;
Como você pode ver, nós impressamos país: capital (chave: valor) usando o loop.
Se você notar, nós usamos auto Digite especificador para iterador de mapa devido à legibilidade. Você pode usar mapa :: iterator explicitamente também.
Observação: Se você vir a saída, ela é classificada por chaves em ordem crescente. Isso ocorre porque o mapa STD :: é um recipiente associativo classificado com comparador fornecido (versão C ++ 11). Como não fornecemos nenhum comparador, o C ++ usou o comparador padrão para string.
Usando enquanto loop com STP :: mapa
Também podemos usar um loop de tempo em vez de loop.
#incluir
#incluir
#incluir
#incluir
usando namespace std;
int main ()
// Inicialize um mapa
mapacountrycapitalmap;
// Insira diferentes elementos no mapa
countrycapitalmap.Insira (par("Índia", "Delhi"));
countrycapitalmap.Insira (par("Nepal", "Kathmandu"));
countrycapitalmap.Insira (par("China", "Pequim"));
countrycapitalmap.Insira (par("França", "Paris"));
// Crie um iterador para o mapa e inicialize com o início
Auto ITR = CountryCapitalMap.começar();
// itera usando o iterador em enquanto o loop
enquanto (itr!= countryCapitalMap.fim())
std :: cout << itr->primeiro // chave de acesso
<< ':'
<< itr->Segundo // Valor de Acesso
<< std::endl;
itr ++;
retornar 0;
Saída:
China: PequimUsando range baseado em loop (versão C ++ 11 em diante)
Se você estiver usando a versão C ++ 11, essa é a maneira mais elegante de iterar o mapa em C++. Você pode evitar loops tradicionais de cigarros e usar isso em vez disso.
#incluirSaída:
#incluir
#incluir
usando namespace std;
int main ()
// Inicialize um mapa
mapacountrycapitalmap;
// Insira diferentes elementos no mapa
countrycapitalmap.Insira (par("Índia", "Delhi"));
countrycapitalmap.Insira (par("Nepal", "Kathmandu"));
countrycapitalmap.Insira (par("China", "Pequim"));
countrycapitalmap.Insira (par("França", "Paris"));
// itera usando o iterador para loop
para (Const Auto & ELE: CountryCapitalMap)
cout <
retornar 0;
Usando range baseado em loop com pares de valores-chave (versão C ++ 17 em diante)
Esta versão é suportada a partir de C ++ 17 em diante e fornece uma maneira mais flexível de iterar sobre o mapa. Você pode acessar explicitamente o par de valores-chave no mapa, que fornece solução ainda mais legível.
#incluirSaída:
#incluir
#incluir
usando namespace std;
int main ()
// Inicialize um mapa
mapacountrycapitalmap;
// Insira diferentes elementos no mapa
countrycapitalmap.Insira (par("Índia", "Delhi"));
countrycapitalmap.Insira (par("Nepal", "Kathmandu"));
countrycapitalmap.Insira (par("China", "Pequim"));
countrycapitalmap.Insira (par("França", "Paris"));
// itera usando o iterador para loop
para (const Auto & [Key, Value]: CountryCapitalMap)
cout << key << ":" << value << "\n";
retornar 0;
Isso é tudo sobre como iterar sobre o mapa em c++.