#include <iostream>
#define SWAP(x,y,t) ((t) = (x), (x) = (y), (y) = (t)) // 这是定义了一个宏,宏函数定义的,这是C语言的方法,
using namespace std;
void swap(int *px, int *py); // 这是把交换做成了一个函数,用指针,
void swap(int &t1, int &t2); // 这是传引用,引用就是别名,别名就是一个人有两个名字,
int main()
{
int a, b,temp;
a = 6;
b = 23;
cout << "传指针的方法," << endl;
cout << "a = " << a << ", b = " << b << endl; // a=6 b=23
// 拷贝的是指针(地址)
swap(&a,&b);
cout << "a = " << a << ", b = " << b << endl; // a=23 b=6
cout << "使用宏定义函数:" << endl;
SWAP(a,b,temp);
cout << "a = " << a << ", b = " << b << endl; // a=6 b=23
cout << "使用的是传引用:" << endl;
swap(a,b);
cout << "a = " << a << ", b = " << b << endl; // a=23 b=6
cout << "使用std::swap函数:" << endl; // 这个是C++已经做好的,直接的使用就好了,
std::swap(a,b);
cout << "a = " << a << ", b = " << b << endl; // a=6 b=23
return 0;
}
void swap(int *px, int *py)
{
int tmp;
tmp = *px; // 指针指的是原来的数据,进行拷贝的时候是将其里边的数据进行的拷贝,
*px = *py;
*py = tmp;
}
void swap(int &t1, int &t2)
{
int tmp1;
tmp1 = t1;
t1 = t2;
t2 = tmp1;
}
交换算法swap
最新推荐文章于 2021-07-20 23:27:55 发布