std::bitset<N>::reference
class reference;
|
||
std::bitset 类包含 std::bitset::reference 作为一个可公开访问的嵌套类。此类被用作代理对象,允许用户与 bitset 的单个位进行交互,因为标准 C++ 类型(如引用和指针)没有足够的精度来指定单个位。
std::bitset::reference 的主要用途是提供一个左值,该左值可以从 operator[] 返回。
任何通过 std::bitset::reference 对 bitset 进行的读写操作,都可能读取或写入整个底层 bitset。
成员函数
|
(constructor)
|
构造引用对象
(公开成员函数) |
|
(destructor)
|
销毁引用对象
(公开成员函数) |
|
operator=
|
对引用的位进行赋值
(公开成员函数) |
|
operator bool
|
返回被引用的位
(公开成员函数) |
|
operator~
|
返回被引用位的取反值
(公开成员函数) |
|
flip
|
翻转被引用的位
(公开成员函数) |
std::bitset<N>::reference:: reference
|
reference
(
const
reference
&
)
=
default
;
|
(since C++11)
(constexpr since C++23) |
|
从另一个引用构造该引用。 复制构造函数被隐式声明。 (until C++11)
其他构造函数只能通过
std::bitset
访问。
std::bitset<N>::reference:: ~reference
|
~reference
(
)
;
|
(constexpr since C++23) | |
销毁引用对象。
std::bitset<N>::reference:: operator=
|
reference
&
operator
=
(
bool
x
)
;
|
(1) |
(noexcept since C++11)
(constexpr since C++23) |
|
reference
&
operator
=
(
const
reference
&
x
)
;
|
(2) |
(noexcept since C++11)
(constexpr since C++23) |
为引用的位赋值。
参数
| x | - | 要赋的值 |
返回值
* this
std::bitset<N>::reference:: operator bool
|
operator
bool
(
)
const
;
|
(自 C++11 起为 noexcept)
(自 C++23 起为 constexpr) |
|
返回被引用位的值。
返回值
被引用的位。
std::bitset<N>::reference:: operator~
|
bool
operator~
(
)
const
;
|
(noexcept since C++11)
(constexpr since C++23) |
|
返回被引用位的逻辑反值。
返回值
被引用位的逻辑反值。
std::bitset<N>::reference:: flip
|
reference
&
flip
(
)
;
|
(自 C++11 起为 noexcept)
(自 C++23 起为 constexpr) |
|
反转所引用的位。
返回值
* this
示例
#include <bitset> #include <iostream> int main() { std::bitset<4> bs{0b1110}; std::bitset<4>::reference ref = bs[2]; auto info = [&](int id) { std::cout << id << ") bs: " << bs << "; ref bit: " << ref << '\n'; }; info(1); ref = false; info(2); ref = true; info(3); ref.flip(); info(4); ref = bs[1]; // operator=( const reference& x ) info(5); std::cout << "6) ~ref bit: " << ~ref << '\n'; }
输出:
1) bs: 1110; ref bit: 1 2) bs: 1010; ref bit: 0 3) bs: 1110; ref bit: 1 4) bs: 1010; ref bit: 0 5) bs: 1110; ref bit: 1 6) ~ref bit: 0
参见
|
访问特定位
(公开成员函数) |