Namespaces
Variants

std::bitset<N>:: flip

From cppreference.net
Utilities library
bitset & flip ( ) ;
(1) (自 C++11 起为 noexcept)
(自 C++23 起为 constexpr)
bitset & flip ( std:: size_t pos ) ;
(2) (自 C++23 起为 constexpr)

翻转位,即将 true 值变为 false ,将 false 值变为 true 。相当于对位集的部分或全部位执行逻辑非操作。

1) 翻转所有位(类似 operator~ ,但为原地操作)。
2) 翻转位于位置 pos 的位。

目录

参数

pos - 要翻转的位的位置

返回值

* this

异常

2) pos 不对应有效的位位置,则抛出 std::out_of_range

示例

#include <bitset>
#include <iostream>
int main()
{
    std::bitset<4> flops;
    std::cout << flops << '\n'
              << flops.flip(0) << '\n'
              << flops.flip(2) << '\n'
              << flops.flip() << '\n';
}

输出:

0000
0001
0101
1010

缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的C++标准。

缺陷报告 适用范围 发布时行为 正确行为
LWG 2250 C++98 pos 不对应
有效位位置时行为未定义
此情况下始终
抛出异常

参见

将位设置为 true 或给定值
(公开成员函数)
将位设置为 false
(公开成员函数)
执行二进制 AND、OR、XOR 和 NOT 运算
(公开成员函数)
翻转所有位
( std::vector<bool,Allocator> 的公开成员函数)