Quelle est la différence entre unordered_map :: emplace et unordered_map :: insert en C++?

Quelle est la différence entre std::unordered_map::emplace et std::unordered_map::insert en C++?

Prises à partir d'un référence: Attention, l'utilisation de emplace permet le nouvel élément à être construit tout en évitant les copier ou de déplacer des opérations. Le constructeur de l'élément nouveau (c'est à dire std::pair<const Key, T>) est appelée avec exactement les mêmes arguments que fourni à l'emplace, transmis via std::forward<Args>(args)....
emplace crée un nouvel objet alors que d'insérer prend un objet existant. Les paramètres sont différents comme emplace prend les arguments du constructeur. Si vous n'avez pas une instance déjà existante à insérer, à l'utilisation emplace.

OriginalL'auteur Harsh M. Shah | 2014-10-19