Вопрос

Я написал проект на C ++ в VS2005 и использовал множество контейнеров STL с его дополнительным STL. Тем не менее, я обнаружил, что STL в VS2005 не имеет hash_map, я хочу использовать SGI hash_map. Как я могу изменить свой проект для использования SGI STL?

Спасибо за метод Брайана, он работает! И это просто.

Это было полезно?

Решение

VS2005 имеет hash_map:

#include <hash_map>
stdext::hash_map

Если вы все еще хотите, вы можете загрузить sgi stl здесь , Вы должны иметь возможность просто установить каталог включения в местоположение sgi. Он будет иметь приоритет над глобальными каталогами включения VC ++.

Другие советы

Я не знаю, имеет ли VS2005 TR1, но если он есть (или если позже вы решите использовать другой компилятор, который его имеет), вы можете использовать unordered_map:

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

Кроме того, для полноты, GCC (который раньше имел <hash_map>) имеет hash_map на <ext/hash_map> (в другом пространстве имен). В последних выпусках GCC вы также можете использовать <tr1/unordered_map>.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top