命名空间
变体
操作

std::bitset<N>::flip

来自 cppreference.cn
< cpp‎ | utility‎ | bitset
 
 
 
 
bitset& flip();
(1) (noexcept since C++11)
(constexpr since C++23)
bitset& flip( std::size_t pos );
(2) (constexpr since C++23)

翻转位,即将 true 值变为 falsefalse 值变为 true。等效于对 bitset 的部分或全部进行逻辑非运算。

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++ 标准。

DR 应用于 已发布行为 正确行为
LWG 2250 C++98 如果 pos
对应于有效的位位置,则行为未定义
始终抛出
此情况下的异常

[编辑] 参见

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