不通过临时变量实现交换的函数
2015-06-08 16:59
330 查看
首先是定义成内联函数,提高函数调用效率。以空间换取时间。另外,关键点在函数体内,如何实现参数x和y的相互交换?不用另外定义一个临时变量,通过他们两个的相互计算实现交换是很好的。
即方法一:
x=x+y;
y=x-y;
x=x-y;
方法二:
*a ^= *b;
*b ^= *a;
*a ^= *b;
好了函数如下
即方法一:
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; }
相关文章推荐
- GridView编辑删除操作
- linux mail利用外部邮箱地址发邮件
- 掌上PDA无线下单 移动开单设备 手持POS终端打印扫描开单进销软件
- C++64位整型相乘取模的溢出处理(二)
- Win7使用还原功能找回丢失系统文件的方法
- Android: 信息推送
- top-命令详解
- 网络异常检查
- VS2010 C++ 操作Excel表格的编程实现
- iOS笔记之文件读写
- copy语法
- CDN混战何去何从,史上最全分析
- oracle中如何获得日期中的年份?
- Mac OS Terminal 基本指令(全)
- POJ1014:Dividing<动归,背包问题>
- Vijava 学习笔记之(VirtualMachine 获取网卡配置信息)
- 图形处理(二)固定边界参数化
- ajax中的脚本标签技巧
- Maven导入oracle驱动
- Android 通用型手电筒代码