Domanda

Quando compilo un'applicazione C++ che sto scrivendo che fa uso di hash_map, ricevo questo avviso su g++ 4.3.2:

Stai utilizzando l'intestazione obsoleta .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 lo sostituisce?Ho cercato per un po' su Google e non sono riuscito a trovare nulla tranne persone che hanno problemi simili, ma nessuna soluzione.

È stato utile?

Soluzione

Il mio primo Google ha colpito per " g ++ hash_map deprecato " mi porta a un pagina che include un elenco di cose da usare al posto delle intestazioni e delle classi deprecate.

Per hash_map, l'elenco suggerisce utilizzando unordered_map , nell'intestazione unordered_map . La classe è stata introdotta per la TR1 .

Altri suggerimenti

Credo che tale nuova struttura di dati si chiama unordered_map

<tr1/unordered_map>

trovato nel namespace std::tr1.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top