How to get headers for unordered_set in gcc v4.1.2?

3.7k Views Asked by At

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.

2

There are 2 best solutions below

4
On BEST ANSWER

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.

0
On

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?