Est-ce que C++ ont intégré dans un tel cadre de STL pour échanger deux valeurs numériques au lieu de faire:C++ intégré pour échanger deux valeurs numériques?
int tmp = var1;
var1 = var2;
var2 = tmp;
Quelque chose comme ceci:
std::swapValues(var1, var2);
Où swapValues est un modèle.
Je suis d'accord avec l'utilisation de std :: swap Avec la mise en garde que std :: swap utilise les constructeurs de copie de tout ce que vous permutez. Gardez donc à l'esprit que c'est bien pour les types de données primitifs mais une fois que vous commencez à entrer dans des structures et des classes plus grandes, cela devient moins efficace. http://www.cplusplus.com/reference/algorithm/swap/ –
@C Nielsen, mais vous pouvez utiliser l'idiome habituel et spécialiser 'std :: swap' pour les classes coûteuses afin d'éviter un temporaire. –
De tels objets plus volumineux peuvent surcharger 'std :: swap' s'il existe une méthode plus efficace. –