Pergunta

Eu escrevi um projeto C ++ no VS2005, e os lotes usados ??do recipiente STL com a sua mais-in STL. No entanto, descobri STL no VS2005 não tem um hash_map nele, eu quero usar SGI hash_map. Como posso mudar o meu projeto para STL uso SGI?

Obrigado por método de Brian, ele funciona! E é simples.

Foi útil?

Solução

VS2005 tem um hash_map:

#include <hash_map>
stdext::hash_map

Se você ainda quer que você pode baixar o STL sgi aqui . Você deve ser capaz de apenas definir o diretório para o local sgi incluir. Ele vai ter precedência sobre o VC ++ global incluem diretórios.

Outras dicas

Eu não sei se VS2005 tem TR1, mas se tiver (ou se você decidir mais tarde para usar outro compilador que tem isso), você pode usar unordered_map:

#include <tr1/unordered_map>
std::tr1::unordered_map mymap;

Além disso, para ser completo, GCC (que costumava ter <hash_map>) tem hash_map em <ext/hash_map> (em um namespace diferente). Em versões recentes do GCC, você também pode usar <tr1/unordered_map>.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top