C++ std::swap 交换两个可移动(或可拷贝)对象的值。对 vector、string 通常是指针级交换,不必复制全部元素。
原型
template<class T>
void swap(T& a, T& b);参数
a、b:要交换的两个对象,类型相同。
返回值
无返回值。
示例
#include <iostream>
#include <utility>
int main() {
int a = 1, b = 2;
std::swap(a, b);
std::cout << a << " " << b << "\n";
return 0;
}输出:
2 1
注意事项
自定义类型若提供成员 swap 或可移动,标准 swap 即可工作。算法里也有区间 iter_swap。
下一页介绍move。