首先是定义成内联函数,提高函数调用效率。以空间换取时间。另外,关键点在函数体内,如何实现参数x和y的相互交换?不用另外定义一个临时变量,通过他们两个的相互计算实现交换是很好的。
即方法一:
x=x+y;
y=x-y;
x=x-y;
方法二:
*a ^= *b;
*b ^= *a;
*a ^= *b;
好了函数如下
inline void swap(int& x, int& y)
{
x = x + y;
y = x - y;
x = x - y;
}
inline void swap_yingyong(char *a,char *b)
{
*a ^= *b;
*b ^= *a;
*a ^= *b;
}