2008-11-03 9 views
2

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

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

ответ

2

VS2005 действительно есть hash_map:

#include <hash_map> 
stdext::hash_map 

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

0

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

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

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