gpt4 book ai didi

c++ - 更改 std::bitset 中一系列位值的最有效方法

转载 作者:行者123 更新时间:2023-11-30 05:26:23 24 4
gpt4 key购买 nike

我需要一种复杂度低的有效方法来更改位集中一系列位的值:

bitset<1000000> bs;

例如,我需要将 100 到 500 之间的值设置为 TRUE。

以最低的复杂性完成此任务的最快方法是什么?

使用循环肯定是不够的。

最佳答案

普通的 for 循环是最简单和最快的方法:

std::bitset<1000000> bs;

for (unsigned i = start, stop = start + n; i != stop; ++i)
bs.set(i);

不幸的是:

还要考虑 std::bitset不附带 iterators , 所以它不能与 <algorithm> 中的函数一起使用图书馆。

如果性能真的很重要,您可以考虑临时实现。

关于c++ - 更改 std::bitset 中一系列位值的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37829823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com