交换算法(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;
}
在这四种实现方式中,需要注意每种实现方式的异同,以及如何调用。