答案:C++中交换变量常用方法包括临时变量、异或、加减法、std::swap等,推荐使用std::swap。

在C++中,交换两个变量的值是编程中的常见操作。有多种方式可以实现这一功能,每种方法都有其适用场景和特点。下面介绍几种常用的方法。
1. 使用临时变量
这是最基础、最直观的方法,通过引入一个临时变量来保存其中一个值,避免数据被覆盖。
- 适合所有数据类型,包括自定义类型
- 逻辑清晰,易于理解
- 需要额外的存储空间
示例代码:
int a = 5, b = 10;
int temp = a;
a = b;
b = temp;
2. 使用异或运算(仅限整型)
利用异或运算的特性可以在不使用临时变量的情况下交换两个整数。
立即学习“C++免费学习笔记(深入)”;
- 节省空间,无需额外变量
- 只能用于整型数据
- 可读性较差,调试困难
示例代码:
int a = 5, b = 10;
a = a ^ b;
b = a ^ b;
a = a ^ b;
3. 使用加减法(仅限数值类型)
通过加减运算实现交换,同样不需要临时变量。
- 适用于int、float等数值类型
- 存在溢出风险
- 不推荐在生产环境中使用
示例代码:
int a = 5, b = 10;
a = a + b;
b = a - b;
a = a - b;
4. 使用std::swap函数
C++标准库提供了std::swap函数,是交换变量的推荐方式。
- 类型安全,支持自定义类型
- 性能优化,底层可能使用移动语义
- 代码简洁,不易出错
示例代码:
#include
int a = 5, b = 10;
std::swap(a, b);
从C++11开始,std::swap位于头文件中,但多数情况下
5. 使用std::exchange(C++14起)
虽然不是直接交换两个变量,但在某些场景下可以简化赋值与保留旧值的操作。
更常见的用途是替换并返回原值,不适合直接替代swap。
6. 利用结构体解包(C++17结构化绑定)
结合std::tie可以实现多个变量的交换。
示例:
int a = 5, b = 10;
std::tie(a, b) = std::make_pair(b, a);
这种方式更常用于元组或多个变量的批量交换。
基本上就这些。对于日常开发,优先使用std::swap,它安全、高效、通用。其他方法了解即可,特定场景下可作为补充。不复杂但容易忽略细节。











