I'd like to use unordered_set without installing Boost. I tried to add --std=gnu++0x
but it is not a recognized option. Does v4.1.2 include unordered_set? If so, how do I get the header file for it?
This is a Centos 4 machine.
I'd like to use unordered_set without installing Boost. I tried to add --std=gnu++0x
but it is not a recognized option. Does v4.1.2 include unordered_set? If so, how do I get the header file for it?
This is a Centos 4 machine.
unordered_set
is in the purview of the standard C++ library, not gcc
, the compiler (although most programs built using gcc
are linked against libstdc++
).
The way you generally include it is #include <tr1/unordered_set>
. Then, to use it, you must either do a using std::tr1::unordered_set;
or qualify the name each time.
The C++ standard version you choose to use doesn't have much effect because that's the language standard, and the availability of standard library constructs is semi-independent.
IIRC, gcc-4.2 did not have unordered containers at least not in namespace std. I know -std=c++0x was not in place till around gcc-4.3.
Have you tried this:
#include <tr1/unordered_set>
...
std::tr1::unordered_set<int> usint;
...
Notice the tr1/ in the header.
Having said that, gcc-4.1 is pretty old. Any chance you could try say gcc-4.5 or 4.6 and use the std container?