std::
bitset::operator[]
公众成员函数 <bitset>
bool operator[] (size_t pos) const;
reference operator[] (size_t pos);
|
访问bit
函数返回位于pos位置的bit的值(或引用)。
使用此操作符,不执行范围检查。使用bitset::test来访问选中bit,同时执行bitset边界检测。
☲ 参数
-
pos
-
其值被访问的bit的顺序位置。
顺序位置从最右位开始计数,即顺序位置0。
Size_t是一个无符号整型。
☉ 返回值
位于pos位置的bit.
如果bitset对象是const限定的,该函数返回bool值。
否则,它返回一个特殊成员类型reference的值,该值对bitset中的一个bit使用 reference-semantics模拟bool值
(参见bitset::reference)。
☣ 示例
// bitset::operator[]
#include <iostream> // std::cout
#include <bitset> // std::bitset
int main ()
{
std::bitset<4> foo;
foo[1]=1; // 0010
foo[2]=foo[1]; // 0110
std::cout << "foo: " << foo << '\n';
return 0;
}
|
输出:
foo: 0110
⇄ 数据竞争
bitset被访问(const和非const版本都不会修改容器)。
非const版本返回的引用可用于访问或修改bitset对象中的位。
注意,修改一个位可能会影响bitset中其他位的数量,因此并发访问/修改不同位不是线程安全的。
☂ 异常安全性
如果pos不是一个有效的位,它会导致未定义的行为。
否则,如果该成员函数抛出异常,bitset将保持有效状态(基本保证)。
🍄 另请参阅