swap() 函數實現的方法
阿新 • • 發佈:2017-11-10
style 函數總結 高效 變量 引用 amp 運算 div code
swap()函數總結:
一、利用臨時變量
1.引用(交換任意類型)
template <typename T> void swap(T& x,T& y) { T tmp; tmp = y; y = x; x = tmp; }
2.泛型指針()
void swap(void* a,void* b ) { int tmp; tmp = y; y = x; x = tmp; }
二、 不用臨時變量交換
1.數學運算
1)乘
void swap (int& x,int& y) { x=x*y; y=x/y; x=x/y; }
2)加
void swap(int& x,int& y) { x=x+y; y=x-y; x=x-y; }
2.邏輯運算(相對其他的方法更高效)
void swap(int& a ,int& b) { x=x^y; y=x^y; x=x^y; }
三、宏函數(註意不要有任何換行操作,或者使用換行符‘\’)
方法一:數學運算 #define swap((a),(b)) { (a) += (b); (b) =((a)-(b)) ; (a) = ((a)-(b));} #defineswap((a),(b)) { (a) *= (b); (b)=((a)/(b)); (a) = ((a)/(b))} 方法二:邏輯 #define swap((a),(b)) { (a) ^= (b); (b) ^= (a);(a) ^= (b);}
swap() 函數實現的方法