C++ 标准库 - <utility>

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。