2009-04-06 14 views
9

Quando compilo un C++ applicazione che sto scrivendo che fa uso di hash_map, ottengo questo avviso sul g ++ 4.3.2:Come eliminare l'avviso di deprecazione di hash_map g ++?

Si utilizza l'intestazione deprecato. Per eliminare questo avviso, utilizzare un file di intestazione standard ANSI o utilizzare il flag del compilatore hte -Wno-deprecato.

9> #include <ext/hash_map> 

Cosa include la sostituzione? Ho cercato per un po 'su google e non riesco a trovare nulla se non per persone che hanno problemi simili, ma nessuna soluzione.

+0

Perché la domanda di questo ragazzo è stata modificata per corrispondere alla risposta? –

risposta

17

Il mio primo hit Google per "g++ hash_map deprecated" mi porta a a page che include un elenco di cose da utilizzare al posto delle intestazioni e delle classi deprecate.

Per hash_map, l'elenco suggerisce di utilizzare unordered_map nell'intestazione unordered_map. La classe è nuova per TR1.

+0

Per qualche motivo ottengo risultati diversi su Google, ma questa è una risposta perfetta. Grazie! – Adam

+0

Credo di aver appena istruito Google su quale tipo di risultati voglio vedere. Buona programmazione. –

+6

La mia prima hit su Google per quella query è questa domanda su SO ... Accidenti a te, Heisenberg! (agitando minacciosamente il pugno in aria) –

6

credo che tale nuova struttura di dati si chiama unordered_map

<tr1/unordered_map> 

trovato nel std::tr1 namespace.

2

Quando si include, non dimenticare di aggiungere la seguente opzione del compilatore; "-std = C++ 0x", altrimenti il ​​compilatore segnalerà un errore