Как избавиться от предупреждения об устаревании g ++ hash_map? - PullRequest
9 голосов
/ 06 апреля 2009

Когда я компилирую написанное на c ++ приложение, которое использует hash_map, я получаю это предупреждение на g ++ 4.3.2:

Вы используете устаревший заголовок. Чтобы устранить это предупреждение, используйте стандартный заголовочный файл ANSI или используйте флаг компилятора hte -Wno-deprecated.

9> #include <ext/hash_map>

Что включает в себя заменить это? Я некоторое время искал в Google и не могу найти ничего, кроме людей, имеющих схожие проблемы, но не нашел решения.

Ответы [ 3 ]

18 голосов
/ 06 апреля 2009

Мое самое первое попадание в Google для " g ++ hash_map deprecated " приводит меня к странице , которая содержит список вещей, которые следует использовать вместо устаревших заголовков и классов.

Для hash_map в списке предлагается использовать unordered_map в заголовке unordered_map. Класс новый для TR1 .

6 голосов
/ 06 апреля 2009

Я считаю, что эта новая структура данных называется unordered_map

<tr1/unordered_map>

найдено в пространстве имен std::tr1.

2 голосов
/ 09 марта 2010

При включении не забудьте добавить следующую опцию компилятора; "-std = c ++ 0x", иначе компилятор сообщит об ошибке

...