293 votes

insérer vs emplacer vs opérateur[] en c++ map

J'utilise des cartes pour la première fois et je me suis rendu compte qu'il y a plusieurs façons d'insérer un élément. Vous pouvez utiliser emplace() , operator[] o insert() et des variantes comme l'utilisation de value_type o make_pair . Bien qu'il y ait beaucoup d'informations sur chacun d'entre eux et des questions sur des cas particuliers, je n'arrive toujours pas à comprendre la situation dans son ensemble. Mes deux questions sont donc les suivantes :

  1. Quel est l'avantage de chacun d'entre eux par rapport aux autres ?

  2. Était-il nécessaire d'ajouter emplace à la norme ? Y a-t-il quelque chose qui n'était pas possible avant sans emplace ?

-2voto

frostcs Points 147

En termes de fonctionnalité ou de rendement, ils sont tous deux identiques.

Pour les deux grandes mémoires, l'emplacemnet d'objets est optimisé pour la mémoire et n'utilise pas de constructeurs de copie.

Pour une explication simple et détaillée https://medium.com/@sandywits/all-about-emplace-in-c-71fd15e06e44

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X