我想知道在 C++ 中交换整数的最有效的操作方式是什么,为什么?是这样的:
int a =..., b = ...;
a = a + b;
b = a - b;
a = a - b;
比使用临时的更有效?还有其他更有效的方法吗? (不只是要求其他方法来交换整数)以及为什么它们会更有效?
赋值总是比进行算术运算更快。
C++实现 https://stackoverflow.com/a/25286610/3626698对于 std::swap 是
template<typename T> void swap(T& t1, T& t2) {
T temp = std::move(t1); // or T temp(std::move(t1));
t1 = std::move(t2);
t2 = std::move(temp);
}
所以使用临时变量比做算术技巧要好。
使用 std::swap 更好,因为在编程中重新发明轮子从来都不是一个好主意
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)