std::vector<bool,Allocator>::swap

来自cppreference.com
 
 
 
 
在标头 <vector> 定义
static void swap( reference x, reference y );
(C++20 前)
constexpr static void swap( reference x, reference y );
(C++20 起)

如同以 bool b = x; x = y; y = b; 交换 xy 的内容。

参数

x - 要和 y 交换的 std::vector<bool>::reference
y - 要和 x 交换的 std::vector<bool>::reference

返回值

(无)

复杂度

常数。

示例

#include <iostream>
#include <vector>
 
int main()
{
    std::vector<bool> vb1{1, 0};
 
    for (auto e : vb1)
        std::cout << e << " ";
    std::cout << '\n';
 
    vb1.swap(vb1[0], vb1[1]);
 
    for (auto e : vb1)
        std::cout << e << " ";
}

输出:

1 0 
0 1

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 814 C++98 缺失了此成员函数的描述 已补充

参阅

引用单个 bool 的代理类
(类)
交换内容
(std::vector<T,Allocator> 的公开成员函数)
特化 std::swap 算法
(函数模板)