std::bitset<N>:: reference
|
class
reference
;
|
||
std::bitset
类包含一个公开可访问的嵌套类
std::bitset::reference
。该类作为代理对象,允许用户与位集的单个比特位进行交互,因为标准 C++ 类型(如引用和指针)不具备精确操作单个比特位的精度。
std::bitset::reference
的主要用途是提供一个可从
operator[]
返回的左值。
通过
std::bitset::reference
对位集进行的任何读写操作,都可能读取或写入整个底层位集。
目录 |
成员函数
|
(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
参见
|
访问特定位
(公开成员函数) |