How to get rid of g++ hash_map deprecation warning

2019-04-06 01:50发布

问题:

When I compile a c++ application I'm writing that makes use of hash_map, I get this warning on g++ 4.3.2:

You are using the deprecated header . To eliminate this warning, use an ANSI-standard header file or use hte -Wno-deprecated compiler flag.

9> #include <ext/hash_map>

What include replaces this? I've searched for a while on google, and can't find anything except for people having similar problems, but no solution.

回答1:

My very first Google hit for "g++ hash_map deprecated" takes me to a page that includes a list of things to use instead of the deprecated headers and classes.

For hash_map, the list suggests using unordered_map, in the unordered_map header. The class is new for TR1.



回答2:

I believe that that new data structure is called unordered_map

<tr1/unordered_map>

found in the std::tr1 namespace.



回答3:

When including , do not forget to add the following compiler option; "-std=c++0x", otherwise the compiler will report an error