Etant donné que,
auto a = make_pair(1,"un");
auto b = make_pair(2,"deux");
a.swap(b);
Quand est-ce que j'ai vraiment besoin d'utiliser a.swap(b)
alors qu'il y a std::swap(a,b)
qui est plus généralisé et fonctionne de la même manière.
Etant donné que,
auto a = make_pair(1,"un");
auto b = make_pair(2,"deux");
a.swap(b);
Quand est-ce que j'ai vraiment besoin d'utiliser a.swap(b)
alors qu'il y a std::swap(a,b)
qui est plus généralisé et fonctionne de la même manière.
std::swap(a, b)
est spécialisé pour std::pair
pour appeler a.swap(b)
en interne. std::swap()
a de nombreuses spécialisations spécifiques au conteneur pour pouvoir utiliser les méthodes appropriées au conteneur pour l'échange effectif.
Si vous écrivez du code pour un type spécifique, envisagez d'utiliser a.swap(b)
directement (ou toute autre méthode appropriée pour ce type).
Si vous écrivez un code générique pour plusieurs types, utilisez std::swap()
à la place, et laissez le compilateur déterminer quelle(s) spécialisation(s) appeler.
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.