swap() 函数实现的方法
Posted Kernel001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swap() 函数实现的方法相关的知识,希望对你有一定的参考价值。
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));} #define swap((a),(b)) { (a) *= (b); (b)=((a)/(b)); (a) = ((a)/(b))} 方法二:逻辑 #define swap((a),(b)) { (a) ^= (b); (b) ^= (a);(a) ^= (b);}
以上是关于swap() 函数实现的方法的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情