Middle
Como é estruturado o contêiner std::map em C++?
sobes.tech IA
Resposta da IA
O std::map em C++ é um contêiner associativo que armazena pares chave-valor, ordenados pela chave. Internamente, geralmente é implementado como uma árvore binária balanceada (por exemplo, uma árvore vermelho-preto), o que garante tempos logarítmicos para acesso, inserção e remoção de elementos.
Características principais:
- As chaves são únicas.
- Os elementos são ordenados por chave usando um comparador (padrão
std::less<Key>). - Armazena os elementos em nós de uma árvore, cada nó contendo um par
std::pair<const Key, T>.
Exemplo de uso:
#include <map>
#include <iostream>
int main() {
std::map<int, std::string> m;
m[10] = "ten";
m[5] = "five";
m[20] = "twenty";
for (const auto& [key, value] : m) {
std::cout << key << ": " << value << '\n';
}
return 0;
}
Neste exemplo, os elementos serão exibidos em ordem de chave: 5, 10, 20.
A memória é alocada dinamicamente para os nós da árvore, e a gestão de memória é feita dentro do contêiner. Ao remover elementos ou destruir o contêiner, a memória é liberada automaticamente.