cpp / latest / utility / bitset / flip.html /

std::bitset<N>::flip

(1)
bitset& flip();
(until C++11)
bitset& flip() noexcept;
(since C++11)
bitset& flip( std::size_t pos );
(2)

Flips bits, i.e. changes true values to false and false values to true. Equivalent to a logical NOT operation on part or all of the bitset.

1) Flips all bits (like operator~, but in-place)
2) Flips the bit at the position pos.

Parameters

pos - the position of the bit to flip

Return value

*this.

Exceptions

2) throws std::out_of_range if pos does not correspond to a valid position within the bitset.

Example

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

Output:

0000
0001
0101
1010

See also

sets bits to true or given value
(public member function)
sets bits to false
(public member function)
performs binary AND, OR, XOR and NOT
(public member function)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/utility/bitset/flip