A parte hash_map do STL é?

Pergunta rápida … O hash_map faz parte do STL?

O STL possui hash_map , mas a Biblioteca Padrão C ++ não .

Devido a um equívoco comum , você pode pensar na Biblioteca Padrão de C ++ como “o STL” ou em partes da implementação de sua ferramenta de ferramentas da Biblioteca Padrão de C ++ como “uma implementação de STL”. Não é.

Também é uma grande pena que tanto o MSVC ++ quanto o GCC (que implementam o hash_map como uma extensão específica do compilador), coloque-o no namespace std , o que é altamente enganador. *suspiro*

O C ++ 11 introduziu o std::unordered_map , que não é diferente.

Citando Wikipedia (ênfase adicionada):

Na página STL :

A Standard Template Library (STL) é uma biblioteca de software parcialmente incluída na Biblioteca Padrão C ++.

… e, em seguida, a partir da página hash_map

Na linguagem de programação C ++, hash_map é o nome de um contêiner associativo com hash na Biblioteca de Modelos Padrão . Ele é fornecido por vários implementadores, como o compilador GNU C ++ e o Visual C ++ da Microsoft. Ele não faz parte da Biblioteca Padrão C ++ , mas o Relatório Técnico 1 de C ++ contém o contêiner unordered_map , que será incluído no padrão C ++ 0x.

Então, em suma,

  • Sim , faz parte do STL.
  • Mas NÃO faz parte da biblioteca padrão.
  • Mas é suportado por várias implementações muito populares.

O problema é que não existe um significado acordado para o termo STL . A parte hash_map do Standard C ++? Não é não. unordered_map fará parte do novo padrão C ++, e é um mapa implementado usando hashing.

Sim , o hash_map faz parte do STL . No entanto, não faz parte da biblioteca padrão do C ++ 03.

hash_map é uma parte do STL, mas não faz parte do Standard C ++ (C ++ 11). E há uma implementação semelhante do hash_map chamado “std :: unordered_map” no padrão C ++: http://www.cplusplus.com/reference/unordered_map/unordered_map/

Atualmente, o GNU C ++ e o MSVC ++ implementaram o hash_map para extensão do compilador, bem como o Boost. Enquanto isso, a SGI tem sua própria implementação para o hash_map. Você pode consultar http://www.sgi.com/tech/stl/hash_map.html para obter detalhes.

Não … Hash_map não faz parte do padrão STL.