交换算法swap

本文介绍了C++中实现两个变量值交换的多种方法,包括使用宏定义、传指针、传引用以及标准库函数std::swap。通过具体的代码示例展示了不同方法的特点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值