我想在不安装 Boost 的情况下使用 unordered_set。我试图添加--std=gnu++0x
,但它不是一个公认的选项。v4.1.2 是否包含 unordered_set?如果是这样,我如何获取它的头文件?
这是一台 Centos 4 机器。
我想在不安装 Boost 的情况下使用 unordered_set。我试图添加--std=gnu++0x
,但它不是一个公认的选项。v4.1.2 是否包含 unordered_set?如果是这样,我如何获取它的头文件?
这是一台 Centos 4 机器。
unordered_set
在标准 C++ 库的范围内,而不是gcc
编译器(尽管大多数使用 构建的程序gcc
都链接到libstdc++
)。
您通常包含它的方式是#include <tr1/unordered_set>
. 然后,要使用它,您必须using std::tr1::unordered_set;
每次都执行或限定名称。
您选择使用的 C++ 标准版本没有太大影响,因为那是语言标准,并且标准库构造的可用性是半独立的。
IIRC,gcc-4.2 至少在命名空间 std 中没有无序容器。我知道 -std=c++0x 直到 gcc-4.3 左右才到位。
你有没有试过这个:
#include <tr1/unordered_set>
...
std::tr1::unordered_set<int> usint;
...
注意标题中的 tr1/。
话虽如此,gcc-4.1 已经很老了。您有没有机会尝试说 gcc-4.5 或 4.6 并使用 std 容器?