Namespaces
Variants

std::bitset<N>:: set

From cppreference.net
Utilities library
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
(公开成员函数)
切换位的值
(公开成员函数)