std::bitset<N>::flip
来自 cppreference.cn
bitset& flip(); |
(1) | (noexcept since C++11) (constexpr since C++23) |
bitset& flip( std::size_t pos ); |
(2) | (constexpr since C++23) |
翻转位,即将 true 值变为 false,false 值变为 true。等效于对 bitset 的部分或全部进行逻辑非运算。
1) 翻转所有位(类似于 operator~,但是原地操作)。
2) 翻转位置 pos 上的位。
内容 |
[编辑] 参数
pos | - | 要翻转的位的位置 |
[编辑] 返回值
*this
[编辑] 异常
[编辑] 示例
运行此代码
#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> 的公共成员函数) |