std::map
Sã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: l
Imprimindo 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
User
Alé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: