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 コンテナーを使用する可能性はありますか?