C++中两个数值交换的几种方法
来源:互联网 发布:java递归排序问题 编辑:程序博客网 时间:2024/05/17 05:09
#include<iostream>
#include<cmath>
using namespace std;
#define swap0(a,b) \
{ \
int t=a; \
a=b; \
b=t; \
}/*引入第三变量法("\"为连接符,在其后不能有空格或其它字符;用宏定义的方法使得数据交换比函数更有效率)*/
#define swap1(a,b) \
{ \
a=a+b; \
b=a-b; \
a=a-b; \
}/*加减法*/
#define swap2(x,y) \
{ \
x=x^y; \
y=x^y; \
x=x^y; \
}/*异或法(异或运算符,位值相同为0,不同为1) //^(异或)只能对int,char..*/
/*经测试,宏定义里的参数最多用两次,如swap0与swap1里的a,b*/
void swap3(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
} /*引入第三变量指针法(若定义中间值*t,需让*t有空间,即指向一个变量)*/
void swap4(int* a,int* b)
{
*a=*a+*b;
*b=*a-*b;
*a=*a-*b;
} /*指针加减法*/
void swap5(int* a,int* b)
{
*a^=*b;
*b^=*a;
*a^=*b;
} /*异或指针法*/
void swap6(int *a,int *b)
{
*a^=*b^=*a;
*b^=*a;
}/*连写的异或指针法*/
int main()
{
int x=9,y=7;
swap(x,y);/*直接调用cmath中的swap函数*/
cout<<x<<" "<<y<<endl<<endl;
return 0;
}
- C语言交换两个变量数值的几种方法
- C++中两个数值交换的几种方法
- 交换两个数值的几种方法
- C语言中交换两个变量数值的方法
- C/C++中交换两个整型数值的方法
- c语言交换两个数值的四种方法.
- Java 中 数值交换的几种方法
- <实例>C++中交换两数值的几种方法
- 关于数值交换的几种方法
- C语言中—— 三种方法实现两个数值交换
- 两个变量交换的几种方法
- java 两个数值交换的6种方法
- 交换两个整数数值的三种方法
- 把两个变量交换数值的方法
- swift交换两个变量的数值方法
- 【C】你能用几种方法交换两个变量的值?------存储器别名的影响
- c语言中不需要中间变量就能实现两个数交换的几种算法
- 两个变量交换内容的几种方法
- Android--ADT与SDK之间的关系
- Android仿美团购买悬浮效果
- Unique Binary Search Trees II -- leetcode
- 【bzoj1040】【ZJOI2008】【骑士】
- 最最最简单的计算器
- C++中两个数值交换的几种方法
- 无处不在的编程思想
- 剑指Offer之 - 替换空格
- POJ1144.Network——无向图的割点
- 第八周项目三:分数类中的运算符重载(一)
- 将log4net封装在类库中的方法
- CF540E
- leetcode--House Robber
- 如何应对云攻击评估云安全控制是关键