Boostをインストールせずにunordered_setを使いたいです。私は--std=gnu++0x
を追加しようとしましたが、認識されたオプションではありません。 v4.1.2にはunordered_setが含まれていますか?もしそうなら、どうすればヘッダファイルを入手できますか?gcc v4.1.2でunordered_setのヘッダーを取得する方法は?
これはCentos 4マシンです。
Boostをインストールせずにunordered_setを使いたいです。私は--std=gnu++0x
を追加しようとしましたが、認識されたオプションではありません。 v4.1.2にはunordered_setが含まれていますか?もしそうなら、どうすればヘッダファイルを入手できますか?gcc v4.1.2でunordered_setのヘッダーを取得する方法は?
これはCentos 4マシンです。
unordered_set
は、標準C++ライブラリではなく、gcc
、コンパイラ(gcc
を使用して構築されたほとんどのプログラムがlibstdc++
に対してリンクされているが)の範囲です。
あなたが一般的に含める方法は#include <tr1/unordered_set>
です。次に、それを使用するには、using std::tr1::unordered_set;
を実行するか、その都度名前を修飾する必要があります。
使用するよう選択したC++標準バージョンは、言語標準であり、標準ライブラリ構造の可用性は半独立ですので、あまり効果がありません。
私はコンパイラによって見つけられない通常のインクルードを試しました。これはv4.1.2で動作しますか? – WilliamKF
'unordered_set'は' libstdC++ '、**ではなく' glibc'です。そして 'libstdC++'自体は実際には* GCCの一部です。ですから、実際はコンパイラとは関係があり、glibcとは関係ありません。 – Fanael
@Fanael私は本当に "標準ライブラリ"と言っていたはずです。私はそれを変更します。そして、あなたは実際に代替ライブラリにリンクされたC++プログラムをビルドして、それを信じるかどうかを考え出すことができます。 – Borealid
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と言って、標準のコンテナを使ってみてはどうですか?
http://stackoverflow.com/q/1228402/1172428助言を与えるかもしれない – FatalError