Die Header hash_map
und hash_set
sind noch nicht im C++ - Standard enthalten, aber sie sind als Erweiterungen mit allen Compilern verfügbar, die ich in letzter Zeit benutzt habe.Wie allgegenwärtig ist hash_map?
Ich frage mich, wie sehr ich mich auf diese in echtem Code verlassen kann, ohne Portabilität zu opfern. Ich arbeite an Tools Projekte, die auf eine Vielzahl von Architekturen und Compiler ausgeführt werden müssen, zB:
- Linux (x86_64, AMD/Intel): GCC, Intel, Portland Compiler
- AIX (Power): GCC, xlC
- Cray XT-Serie (AMD): GCC, Portland, Pathscale Compiler
- IBM Blue Gene Series (Power): xlC, GCC
- SGI Altix (Itanium): Intel Compiler
- Fenster: Nicht wirklich eine Priorität, aber ich fühle mich frei nützliche Antworten zu geben.
Ich weiß, einige davon sind ziemlich exotisch, aber das ist nicht der Punkt. Welche Erfahrungen haben Sie mit STL-Erweiterungen über mehrere Plattformen und Compiler hinweg gemacht? Sind sie schon allgegenwärtig? Würde Sie verwenden sie in Ihrem Projekt?
Einfache Antwort: Verwenden Sie nicht hash_map, sondern unordered_map oder unordered_set. –