命名空间
变体
操作

std::bitset<N>::flip

来自 cppreference.cn
< cpp‎ | 工具库‎ | bitset
 
 
 
 
bitset& flip();
(1) (C++11 起无异常抛出)
(constexpr since C++23)
bitset& flip( std::size_t pos );
(2) (constexpr since C++23)

翻转位,即将 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> 的公有成员函数) [编辑]