您的位置:首页 > 其它

不通过临时变量实现交换的函数

2015-06-08 16:59 330 查看
首先是定义成内联函数,提高函数调用效率。以空间换取时间。另外,关键点在函数体内,如何实现参数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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: