Как использовать sgi hash_table в VS2005?
Вопрос
Я написал проект на 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>
.