C ++

Como iterar no mapa em C ++

Como iterar no mapa em C ++
Neste tutorial rápido, veremos como iterar no mapa em C++.

Existem várias maneiras de iterar sobre o mapa em C++. Com as versões mais recentes de C ++, existem maneiras mais avançadas de iterar no mapa em C++.

Vamos examinar um por um.

Usando o loop for com stp :: map

Criamos um mapa chamado countryCapitalMap e inseriu pares de valores-chave nele.


#incluir
#incluir
#incluir
#incluir
#incluir
usando namespace std;
int main ()
// Inicializa um mapa
mapa> "Índia", "Delhi"));
countryCapitalMap.inserir (par("Nepal", "Kathmandu"));
countryCapitalMap.inserir (par("China", "Pequim"));
countryCapitalMap.inserir (par("França", "Paris"));
// Iterar usando iterador no loop for
para (auto itr = countryCapitalMap.começar(); itr != countryCapitalMap.fim(); itr ++)

std :: cout << itr->primeira // chave de acesso
<< ':'
<< itr->segundo // Valor de acesso
<< std::endl;

return 0;


Resultado:

China: Pequim
França: Paris
Índia: Delhi
Nepal: Kathmandu

Como você pode ver, imprimimos country: capital (chave: valor) usando o loop for.

Se você notar, nós usamos auto especificador de tipo para o iterador do 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 std :: map é um contêiner associativo classificado com o Comparador fornecido (versão C ++ 11 em diante). Como não fornecemos nenhum comparador, C ++ usou o Comparador padrão para string.

Usando loop while com stp :: map

Também podemos usar um loop while em vez de um loop for.


#incluir
#incluir
#incluir
#incluir >
usando namespace std;
int main ()
// Inicializa um mapa
mapa countryCapitalMap;
// Insira diferentes elementos no mapa
countryCapitalMap.inserir (par("Índia", "Delhi"));
countryCapitalMap.inserir (par("Nepal", "Kathmandu"));
countryCapitalMap.inserir (par("China", "Pequim"));
countryCapitalMap.inserir (par("França", "Paris"));
// Crie um iterador para o mapa e inicialize com begin
auto itr = countryCapitalMap.começar();
// Iterar usando iterador no loop while
while (itr!= countryCapitalMap.fim())

std :: cout << itr->primeira // tecla de acesso
<< ':'
<< itr->segundo // Valor de acesso
<< std::endl;
itr ++;

return 0;


Resultado:

China: Pequim
França: Paris
Índia: Delhi
Nepal: Kathmandu

Usando intervalo baseado em loop (versão C ++ 11 em diante)

Se você estiver usando a versão C ++ 11, esta é a maneira mais elegante de iterar sobre o mapa em C++. Você pode evitar loops cubersome tradicionais e usar isso.


#incluir
#incluir
#incluir
usando namespace std;
int main ()
// Inicializa um mapa
mapa countryCapitalMap;
// Insira diferentes elementos no mapa
countryCapitalMap.inserir (par("Índia", "Delhi"));
countryCapitalMap.inserir (par("Nepal", "Kathmandu"));
countryCapitalMap.inserir (par("China", "Pequim"));
countryCapitalMap.inserir (par("França", "Paris"));
// Iterar usando iterador no loop for
for (const auto & ele: countryCapitalMap)
cout <
return 0;


Resultado:
China: Pequim
França: Paris
Índia: Delhi
Nepal: Kathmandu

Uso de loop for baseado em intervalo com pares de valores-chave (versão C ++ 17 em diante)

Esta versão é compatível com c ++ 17 em diante e fornece uma maneira mais flexível de iterar no mapa. Você pode acessar explicitamente o par de valores-chave no mapa, o que fornece uma solução ainda mais legível.


#incluir
#incluir
#incluir
usando namespace std;
int main ()
// Inicializa um mapa
mapa countryCapitalMap;
// Insira diferentes elementos no mapa
countryCapitalMap.inserir (par("Índia", "Delhi"));
countryCapitalMap.inserir (par("Nepal", "Kathmandu"));
countryCapitalMap.inserir (par("China", "Pequim"));
countryCapitalMap.inserir (par("França", "Paris"));
// Iterar usando iterador no loop for
for (const auto & [key, value]: countryCapitalMap)
cout << key << ":" << value << "\n";

return 0;


Resultado:
China: Pequim
França: Paris
Índia: Delhi
Nepal: Kathmandu

Isso é tudo sobre como iterar sobre o mapa em C++. Boa codificação!

Melhores jogos de linha de comando para Linux
A linha de comando não é apenas sua maior aliada ao usar o Linux - ela também pode ser uma fonte de entretenimento porque você pode usá-la para jogar ...
Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...