问题标签 [std-bitset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
338 浏览

c++ - 计算多个 std::bitset 中出现 1 的最快方法?

我想计算1在同一位置的多个位集中的出现。每个位置的计数存储在一个向量中。

例如

我可以使用下面的代码轻松做到这一点,但这段代码似乎缺乏性能,但我不确定。所以我的问题很简单:有没有更快的方法来计算1

0 投票
1 回答
425 浏览

boost - 将 dynamic_bitset 转换为 std::bitset

我有一个应用程序,我需要在运行时动态分配一个位集,所以我不得不使用boost::dynamic_bitset. 但是,出于效率原因,我希望最终将数据用作std::bitset. 我该如何从boost::dynamic_bitsetto转换std::bitset

0 投票
1 回答
47 浏览

c++ - 增加 std::vector 内的元素取决于 std::bitset

我想将 a 中的每个元素的std::vector<size_t>长度256增加一,但取决于 a 的相同位置std::bitset<256>(如果相等1)。

下面的代码可以在这里编辑/编译。

我的问题是,我可以摆脱for循环并使用一些快速的逻辑运算符吗?

0 投票
2 回答
1254 浏览

c++ - 将 std::bitset 写入二进制文件并将文件加载到 std:bitset

我正在处理一个将使用 bitset 的项目。由于提供的文本文件非常大(>800M),将其直接加载到 std::bitset 将花费超过 25 秒。所以我想将文本文件预处理为内存转储的二进制文件。因为 8 位 char 会转换为 1 位,所以文件加载的成本时间会大大减少。我写了一个演示代码:

看起来工作正常,但我担心这种用法在生产环境中真的可以正常工作。

感谢一些先进的。

0 投票
4 回答
303 浏览

c++ - 如何在没有未定义行为的情况下安全地偏移位?

考虑到 bitset 的位数可能少于目标类型,我正在编写一个将 bitset 转换为 int/uint 值的函数。

这是我写的函数:

和“测试程序”:

注意:请参阅与 Ped7g 的评论/交换,上面的代码是正确的并保留位符号,并对有符号或无符号位进行 12->16 位转换。但是,如果您正在研究如何在签名对象上将 0xABC0 偏移到 0x0ABC,那么答案可以帮助您,所以我不会删除这个问题。

uint16在用作目标类型时查看程序的工作原理,如下所示:

但是,使用时失败int16_t,因为0x89A0 >> 4is0xF89A而不是 expected 0x089A

我不明白为什么 >> 运算符有时会插入 0 有时会插入 1。而且我不知道如何安全地执行我的函数的最终操作(result = result >> missingbits;在某些时候一定是错误的......)

0 投票
1 回答
817 浏览

c++ - 测试 std::bitset 中的位范围

有没有一种有效的方法来测试子范围std::bitset似乎表明不是。

看到 std::bitset::anyand std::bitset:all(对于 C++11),但它们是针对整个集合的,而不是一个子范围。我希望的是anyand的重载版本all。就像是:

std::bitset::test也只是一点点。从理论上讲,我可以构建位集来对位旋转,但是这些位集会相当大,这可能不合理。

想法?

谢谢!

0 投票
2 回答
2631 浏览

c++ - C++ 如何将输入值分配给 std::bitset 参数?

我想制作一个简单的程序,它将从输入中获取位数,并作为输出显示二进制数,写在给定的位上(例如:我输入 3:它显示 000、001、010、011、100、101、110 , 111)。我得到的唯一问题是在第二个for循环中,当我尝试在bitset< bits >中分配变量时,它需要常量。如果您能帮助我找到解决方案,我将非常感激。这是代码:

0 投票
2 回答
954 浏览

c++ - std::bitset 中的可变位长

我不确定如何正确解释这一点,但我正在寻找一种自动设置orsizenumber方法bitset<size>

例子

具有固定位数的输出

我想以可变位数自动输出,例如输出11111001而不是使用固定位。

基本上我想0在不使用的时候剪掉前面的

0 投票
1 回答
74 浏览

c++ - 模板声明中的位集

我想知道是否可以在模板声明中使用 bitset,如下所示:

ListData 是包含 T 元素的类,如下所示:

编译器说模板参数无效并且没有在这个范围内声明汉明。任何想法?

ps 由于我的作业限制,我无法使用 C++ 矢量容器

0 投票
2 回答
522 浏览

c++ - libstdc++ 和 libc++ 之间的行为差​​异:bitset 上的 operator>>

考虑以下代码:

g++在with下编译libstdc++,结果为:

clang++在with下编译libc++,结果为:

哪一个是对的?两者(因为未定义的行为)?海合会?铛?