J'ai toujours été surpris par la propriété d'ordonnancement de std::map. Mais c'est une vieille structure. Depuis, la norme d'implémentation est devenue les hash maps, que ce soit en Java ou en Perl ou les dict en Python (bien que ces derniers conservent l'ordre, après une n-ième implémentation).
J'ai presque envie de conseiller std::unordered_map comme std::map et de renommer std::map en std::ordrered_map ;) Quand à l'opérateur [] qui crée forcément un entrée, en appelant le constructeur par défaut, c'est un principe même du langage... qui est un sacré piège, surtout quand les valeurs de la map sont des objets complexes.
# Héritage de std::map
Posté par Glandos . En réponse au lien Effortless Performance Improvements in C++: std::unordered_map. Évalué à 5.
J'ai toujours été surpris par la propriété d'ordonnancement de
std::map. Mais c'est une vieille structure. Depuis, la norme d'implémentation est devenue les hash maps, que ce soit en Java ou en Perl ou les dict en Python (bien que ces derniers conservent l'ordre, après une n-ième implémentation).J'ai presque envie de conseiller
std::unordered_mapcommestd::mapet de renommerstd::mapenstd::ordrered_map;) Quand à l'opérateur[]qui crée forcément un entrée, en appelant le constructeur par défaut, c'est un principe même du langage... qui est un sacré piège, surtout quand les valeurs de la map sont des objets complexes.