我有一个由随机数生成器生成的字节数组。我想把它放到 STL 位集中。
不幸的是,Bitset 似乎只支持以下构造函数:
- 一串 1 和 0,例如“10101011”
- 一个无符号长。 (我的字节数组会更长)
我现在能想到的唯一解决方案是逐位读取字节数组并制作一个由 1 和 0 组成的字符串。有没有人有更有效的解决方案?
原文由 Unknown 发布,翻译遵循 CC BY-SA 4.0 许可协议
bitset<>
有第三个构造函数——它不接受参数并将所有位设置为 0。我认为你需要使用它然后遍历数组调用 set()
为每个位在字节数组中为 1。
有点蛮力,但它会工作。将每个字节内的字节索引和位偏移量转换为位集索引会有一些复杂性,但没有什么想法(也许在调试器下运行)无法解决。我认为这很可能比尝试通过字符串转换或流运行数组更简单、更有效。
原文由 Michael Burr 发布,翻译遵循 CC BY-SA 2.5 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
像这样的东西?
以及一个示例用法: