我在 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。您应该能够将包含目录设置为 sgi 位置。它将优先于 VC++ 全局包含目录。
我不知道 VS2005 是否有 TR1,但如果有(或者如果你以后决定使用另一个有它的编译器),你可以使用unordered_map
:
#include <tr1/unordered_map>
std::tr1::unordered_map mymap;
此外,为了完整起见,GCC(曾经有<hash_map>
)具有hash_map
on <ext/hash_map>
(在不同的命名空间上)。在最近的 GCC 版本中,您还可以使用<tr1/unordered_map>
.