我在VS2005中编写了一个C++项目,并在STL中使用了大量带有加号的STL容器。然而,我发现VS2005中的STL中没有hash_map,我想使用SGI hash_map。如何将我的项目更改为使用SGI STL?
感谢Brian的方法,它有效!这很简单。
VS2005确实有一个hash_map:
#include <hash_map>
stdext::hash_map
如果你仍然想,你可以在这里下载sgi stl。您应该能够将include目录设置为sgi位置。它将优先于VC++全局包含目录。
我不知道VS2005是否有TR1,但如果它有(或者如果您稍后决定使用另一个有TR1的编译器),您可以使用unordered_map
:
#include <tr1/unordered_map>
std::tr1::unordered_map mymap;
此外,为了完整性,GCC(过去有<hash_map>
)在<ext/hash_map>
上有hash_map
(在不同的命名空间上)。在最近的GCC版本中,您还可以使用<tr1/unordered_map>
。