c++数据结构与算法(1)——交换两个数的4种方法

#include <iostream>
using namespace std;
/*宏定义交换*/ 
#define SWAP(a,b,t) ((t)=(a),(a)=(b),(b)=(t))
/*指针交换*/ 
void swap_p(int* a, int *b);
/*引用交换*/
void swap_r(int& a, int& b); 
/*模板交换*/ 
template <class T>
void swap_t(T& a, T& b); 
int main(){
	int a, b, t;
	a = 1;
	b = 10;
	cout << "交换前:" << endl;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	
	/*****基本交换 - start******/ 
	t = a;
	a = b;
	b = t;
	/*****基本交换 - end******/ 
	
	cout << "基本交换后:" << endl;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	
	/*指针交换*/ 
	swap_p(&a, &b);
	cout << "指针交换后:" << endl;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	
	/*引用交换*/ 
	swap_r(a, b);
	cout << "引用交换后:" << endl;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	
	/*宏交换*/ 
	SWAP(a,b,t);
	cout << "宏交换后:" << endl;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	
	/*模板交换*/ 
	swap_t(a, b);
	cout << "模板交换后:" << endl;
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	return 0;
}

/*
指针交换 
*/
void swap_p(int* a, int* b){
	int p;
	p = *a;
	*a = *b;
	*b = p;
}

/*
引用交换
*/
void swap_r(int& a, int& b){
	int t;
	t = a;
	a = b;
	b = t;
} 

/*
模板交换
*/ 
template <class T>
void swap_t(T& a, T& b){
	T t;
	t = a;
	a = b;
	b = t;
} 

猜你喜欢

转载自blog.csdn.net/qq_40238526/article/details/92400500