最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符
template <class T> void swap ( T& a, T& b ) { T c(a); a=b; b=c; }
需要构建临时对象,一个拷贝构造,两次赋值操作。
针对int型优化
void swap(int & __restrict a, int & __restrict b) { a ^= b; b ^= a; a ^= b; }
无需构造临时对象,异或。
本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/p/3965449.html,如需转载请自行联系原作者