ли C++ имеют встроенный в таких, как часть STL, чтобы поменять местами два числовых значений, а не делать:C++ встроен для замены двух числовых значений?
int tmp = var1;
var1 = var2;
var2 = tmp;
Что-то вроде этого:
std::swapValues(var1, var2);
Где swapValues является шаблоном.
Я согласен с использованием std :: swap С оговоркой, что std :: swap использует конструкторы копирования того, что вы меняете. Поэтому имейте в виду, что это нормально для примитивных типов данных, но как только вы начинаете входить в более крупные структуры и классы, он становится менее эффективным. http://www.cplusplus.com/reference/algorithm/swap/ –
@C Nielsen, но вы можете использовать обычную идиому и специализироваться на 'std :: swap' для дорогих классов, чтобы избежать временного. –
Такие большие объекты могут перегружать 'std :: swap', если есть более эффективный метод. –