【发布时间】:2010-09-20 10:39:33
【问题描述】:
我在 VS2005 中编写了一个 C++ 项目,并使用了许多 STL 容器及其附加的 STL。但是,我发现VS2005中的STL没有hash_map,我想使用SGI hash_map。如何更改我的项目以使用 SGI STL?
感谢 Brian 的方法,它有效!而且很简单。
【问题讨论】:
我在 VS2005 中编写了一个 C++ 项目,并使用了许多 STL 容器及其附加的 STL。但是,我发现VS2005中的STL没有hash_map,我想使用SGI hash_map。如何更改我的项目以使用 SGI STL?
感谢 Brian 的方法,它有效!而且很简单。
【问题讨论】:
VS2005 确实有 hash_map:
#include <hash_map>
stdext::hash_map
如果您仍然想这样做,您可以download the sgi stl here。您应该能够将包含目录设置为 sgi 位置。它将优先于 VC++ 全局包含目录。
【讨论】:
我不知道VS2005是否有TR1,但如果有(或者你以后决定使用另一个有它的编译器),你可以使用unordered_map:
#include <tr1/unordered_map>
std::tr1::unordered_map mymap;
此外,为了完整起见,GCC(过去有 <hash_map>)在 <ext/hash_map> 上(在不同的命名空间上)有 hash_map。在最近的 GCC 版本中,您还可以使用 <tr1/unordered_map>。
【讨论】: