Namespaces
Variants

std::bitset<N>::set

从 zh.cppreference.net 获取
 
 
 
 
bitset& set();
(1) (C++11 起为 noexcept)
(C++23 起为 constexpr)
bitset& set( std::size_t pos, bool value = true );
(2) (C++23 起为 constexpr)

将所有位设为 true,或将某一位设为指定值。

1) 将所有位设为 true。
2) 将位置 pos 的位设为值 value。

参数

pos - 位的位置(从 ​ 0 ​ 开始计数,即从最低有效位到最高有效位)
value - 要设置的位值

返回值

* this

异常

2) 若 pos 不对应有效的位位置,则抛出 std::out_of_range 。

示例

#include <bitset>
#include <cstddef>
#include <iostream>
int main()
{
    std::bitset<8> b;
    std::cout << b << '\n';
    std::cout << b.set() << '\n';
    std::cout << b.reset() << '\n';
    for (std::size_t i = 1; i < b.size(); i += 2)
        b.set(i);
    std::cout << b << '\n';
}

输出:

00000000
11111111
00000000
10101010

缺陷报告

以下行为变更缺陷报告被追溯应用于先前发布的C++标准。

缺陷报告 适用标准 发布时行为 正确行为
LWG 186 C++98 value 的类型为 int 修正为 bool
LWG 2250 C++98 若 pos 不对应有效位位置
则行为未定义
此情况下始终抛出
异常

参见

将位设置为 false
(公开成员函数)
切换位的值
(公开成员函数)