我有一个函数来增加一个位串,如下所示:
void increment(boost::dynamic_bitset<> &bitset)
{
for (int loop = 0; loop < bitset.size(); ++loop)
{
if ((bitset[loop] ^= 0x1) == 0x1)
{
break;
}
}
}
我想要一个以与调用增量相同的方式调用的函数,但以不同的方式修改位串。每次调用它时,我都想获得与前一个具有相同数量 0 的下一个位串。
例如,如果位串的长度为 10,则对该函数的前 10 次调用将给出一个具有单个 0 的位串。然后,调用 11 到 20 将返回具有 2 个 0 的位串。我希望这一直持续下去,直到位串全为 0。
我怎么能设置这样的功能?谢谢!