问题标签 [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.
c++ - 计算多个 std::bitset 中出现 1 的最快方法?
我想计算1
在同一位置的多个位集中的出现。每个位置的计数存储在一个向量中。
例如
我可以使用下面的代码轻松做到这一点,但这段代码似乎缺乏性能,但我不确定。所以我的问题很简单:有没有更快的方法来计算1
?
boost - 将 dynamic_bitset 转换为 std::bitset
我有一个应用程序,我需要在运行时动态分配一个位集,所以我不得不使用boost::dynamic_bitset
. 但是,出于效率原因,我希望最终将数据用作std::bitset
. 我该如何从boost::dynamic_bitset
to转换std::bitset
?
c++ - 增加 std::vector 内的元素取决于 std::bitset
我想将 a 中的每个元素的std::vector<size_t>
长度256
增加一,但取决于 a 的相同位置std::bitset<256>
(如果相等1
)。
下面的代码可以在这里编辑/编译。
我的问题是,我可以摆脱for
循环并使用一些快速的逻辑运算符吗?
c++ - 将 std::bitset 写入二进制文件并将文件加载到 std:bitset
我正在处理一个将使用 bitset 的项目。由于提供的文本文件非常大(>800M),将其直接加载到 std::bitset 将花费超过 25 秒。所以我想将文本文件预处理为内存转储的二进制文件。因为 8 位 char 会转换为 1 位,所以文件加载的成本时间会大大减少。我写了一个演示代码:
看起来工作正常,但我担心这种用法在生产环境中真的可以正常工作。
感谢一些先进的。
c++ - 如何在没有未定义行为的情况下安全地偏移位?
考虑到 bitset 的位数可能少于目标类型,我正在编写一个将 bitset 转换为 int/uint 值的函数。
这是我写的函数:
和“测试程序”:
注意:请参阅与 Ped7g 的评论/交换,上面的代码是正确的并保留位符号,并对有符号或无符号位进行 12->16 位转换。但是,如果您正在研究如何在签名对象上将 0xABC0 偏移到 0x0ABC,那么答案可以帮助您,所以我不会删除这个问题。
uint16
在用作目标类型时查看程序的工作原理,如下所示:
但是,使用时失败int16_t
,因为0x89A0 >> 4
is0xF89A
而不是 expected 0x089A
。
我不明白为什么 >> 运算符有时会插入 0 有时会插入 1。而且我不知道如何安全地执行我的函数的最终操作(result = result >> missingbits;
在某些时候一定是错误的......)
c++ - C++ 如何将输入值分配给 std::bitset 参数?
我想制作一个简单的程序,它将从输入中获取位数,并作为输出显示二进制数,写在给定的位上(例如:我输入 3:它显示 000、001、010、011、100、101、110 , 111)。我得到的唯一问题是在第二个for循环中,当我尝试在bitset< bits >中分配变量时,它需要常量。如果您能帮助我找到解决方案,我将非常感激。这是代码:
c++ - std::bitset 中的可变位长
我不确定如何正确解释这一点,但我正在寻找一种自动设置orsize
的number
方法bitset<size>
例子
具有固定位数的输出
我想以可变位数自动输出,例如输出111
,11001
而不是使用固定位。
基本上我想0
在不使用的时候剪掉前面的
c++ - 模板声明中的位集
我想知道是否可以在模板声明中使用 bitset,如下所示:
ListData 是包含 T 元素的类,如下所示:
编译器说模板参数无效并且没有在这个范围内声明汉明。任何想法?
ps 由于我的作业限制,我无法使用 C++ 矢量容器
c++ - libstdc++ 和 libc++ 之间的行为差异:bitset 上的 operator>>
考虑以下代码:
g++
在with下编译libstdc++
,结果为:
clang++
在with下编译libc++
,结果为:
哪一个是对的?两者(因为未定义的行为)?海合会?铛?