最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符
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; }
无需构造临时对象,异或。
时间: 2024-10-01 16:17:09
最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符
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; }
无需构造临时对象,异或。