
std::mapSão contêineres associativos que armazenam elementos de forma mapeada. Cada elemento possui um valor-chave e um valor mapeado.
Estrutura:
std::map<Key,T,Compare,Allocator>
Para usar std::map
#include <map>Declarando o std::map, a chave será do tipo const char* e o valor std::string:
std::map<const char*, std::string> mapa;Atribuindo valores as chaves
mapa["Marcos"] = "Oliveira";
mapa["Terminal"] = "Root";Podemos duplicar as chaves, mas o valor agora será ‘Root’
mapa["Terminal"] = "Root";
mapa["Terminal"] = "User";
Imprimindo os valores
std::cout << mapa["Marcos"] << '\n';
std::cout << mapa["Terminal"] << '\n';Obter o tamanho do mapa
std::cout << mapa["Terminal"].size() << '\n';Se quiser imprimir letras separadas:
std::cout << mapa["Marcos"][1] << '\n'; // Saída: lImprimindo valores em um loop, caso precise para alguma aplicação
for( auto m : mapa["Terminal"] ){
std::cout << m;
}Todo o código dos exemplos acima com a saída final:
i#include <iostream>
#include <map>
int main(){
std::map<const char*, std::string> mapa;
mapa["Marcos"] = "Oliveira";
mapa["Terminal"] = "Root";
mapa["Terminal"] = "User";
std::cout << mapa["Marcos"] << '\n';
std::cout << mapa["Terminal"].size() << '\n';
std::cout << mapa["Marcos"][1] << '\n'; // Saída: l
for( auto m : mapa["Terminal"] ){
std::cout << m;
}
std::cout << '\n';
return 0;
}Saída final:
Oliveira
4
l
UserAlém do size() outras funções que podem ser aplicadas: begin, cbegin, cend, clear, contains, count, crbegin, crend, emplace, emplace_hint, empty, end, erase, find, insert, lower_bound, max_size, rbegin, rend, swap e upper_bound.
A diferença entre begin() e cbegin() é que o begin() pode retornar um iterador ou um iterador constante, mas o cbegin() só retorna o iterador CONSTANTE . A mesma regra vale para os outros que possui esse c na frente .
O clear(), limpa o mapa retornando ao zero.
O empty() serve para verificar se está vazio ou não.
O emplace() insere em uma posição específica, assim como o insert() a diferença é o tipo de operação. E o emplace_hint() para tipos não modificáveis/irreversíveis .
Para mais informações sugiro ver esse link.
Por hoje é só, são pequenas doses diárias que farão sempre nos manter antenado com o C++ !
Então se inscreva nos nossos Cursos de C++ Moderno . Você aprender criar:
Acesse o endereço: