stdext
is an MSVC extension, but you're compiling on linux with GCC, so it's not available. GCC has a similar extension, but its header is ext/hash_map
, and is in the __gnu_cxx
namespace, rather than stdext
. Both MSVC and GCC's hash_maps have similar interfaces, but if I recall correctly, there are subtle differences.
If you can, utilize C++11's unordered_map. Failing that, maybe you have TR1 available, and std::tr1::unordered_map
. As a final fallback, consider Boost's unordered containers (that served as a basis for TR1 and C++11's interfaces).
Edit I just noticed you're using GCC 4.4.x, TR1 is available there. The only issue would be if you're compiling the same code on windows with MSVC, as well, I do not believe TR1 is available there (I have VC8 and VC9 available, and it's not available in either. I believe they went straight to start supporting C++11 libraries in VC10, skipping TR1 completely).