2009-04-06 4 views
9

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

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

9> #include <ext/hash_map> 

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

+0

Почему вопрос этого парня отредактирован для ответа? –

ответ

17

Мой самый первый хит Google для «g++ hash_map deprecated» принимает меня к a page, который включает в себя список вещей, которые нужно использовать вместо устаревших заголовков и классов.

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

+0

По какой-то причине я получаю разные результаты в Google, но это идеальный ответ. Благодаря! – Adam

+0

Наверное, я только что научил Google лучше о том, какие результаты я хочу видеть. Счастливое кодирование. –

+6

Мой самый первый хит в Google для этого вопроса - это вопрос на SO ... Черт тебя, Гейзенберг! (угрожающе встряхиваю кулак в воздухе) –

6

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

<tr1/unordered_map> 

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

2

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

Смежные вопросы