交换算法(swap)
- void swap(int x,int y)
- void swap(int *px,int *py)
- #define swap(x,y,t) ((t)=(x),(x)=(y),(y)=(x))
- void swap(int &x,int &y)
- template<class T> void swap(T&x,T&y)
#include<iostream>
using namespace std;
void swap(int &x, int &y);
int main()
{
int a = 1;
int b = 10;
//C++ 引用实现
swap(a, b);
cout << "a=" << a << "," << "b=" << b << endl;
//C++ 现成的模板类
std::swap(a, b);
cout << "a=" << a << "," << "b=" << b << endl;
system("pause");
return 0;
}
//C++ 引用方式实现
void swap(int &x, int &y)
{
int tmp;
tmp = x;
x = y;
y = tmp;
}
#include<stdio.h>
void swap(int *x, int *y);
#define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t))//注意括号的使用
int main()
{
int a = 1;
int b = 10;
int t;
//C 指针实现
swap(&a, &b);
printf("a=%d,b=%d\n", a, b);
//宏定义实现
SWAP(a, b,t);
printf("a=%d,b=%d\n", a, b);
getchar();
return 0;
}
在这四种实现方式中,需要注意每种实现方式的异同,以及如何调用。