Sobes.tech
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.