问题标签 [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++ - 将 2D 位集存储为 1D 时的 XOR 位集
回答只关心速度时如何存储二进制数据?,我正在尝试写一些来做比较,所以我想使用std::bitset
. 但是,为了公平比较,我希望 1Dstd::bitset
模拟 2D。
因此,而不是:
我想使用:
优化数据局部性。但是,现在我遇到了如何存储和计算二进制码之间的汉明距离的问题?,如我的最小示例所示:
错误:
这是因为它不知道何时停止!在处理 D 位后如何告诉它停止?
我的意思是不使用 2D数据结构。
c++ - 使用 std::bitset 时程序崩溃,但仅在使用 VC 2015 编译时
我正在开发一个简单的程序,它将字符串转换为二进制代码并返回。我在 Ubuntu 上工作,想用 Visual Studio 2015 在 Windows 上编译程序。虽然 Linux 构建运行良好,但在 Windows 上它可以编译,但会崩溃,例如
调用以下函数时:
现在,我的问题是,这段代码有什么问题?为什么它可以在 Linux (gcc) 和 Windows (MinGW) 上运行,但不能在带有 Visual Studio 2015 的 Windows 上运行?
我目前的解决方法是:
这两种解决方案中哪一种更好?
c++ - g++ 为 std::bitset 分配的内存不足
这里我分配 10^9 位:
我明白了cc1plus.exe: out of memory allocating 268439551 bytes
。
但是当我这样做时
125000000 字节(125 MB)分配得很好。如果我更改N
为 10 的不同幂,我会发现两者sizeof
都是相同的。我什至看不到 268439551 字节的限制来自哪里,因为那是 268.4 MB,而我有大约 4 GB 的可用 RAM。即使在 32 位系统上,~200 MB 也不应该引起问题,并且以某种方式达到了字节限制。是什么导致了这里的问题?
在具有 8 GB RAM 的 Windows 8.1 上使用 gcc 4.8.3。
c++ - 我可以在 OpenACC 中使用 std::bitset 的函数吗?
是否可以在 OpenACC 区域使用 bitset 的功能?示例代码:
pgc++ -fast -acc -Minfo=accel -ta=nvidia:managed -DNDEBUG -pgc++libs -g
如果我用类似的代码(LD_LIBRARY_PATH=/opt/pgi/linux86-64/lib)编译上面的代码,我会收到以下错误: PGCC-S-0155-PGI support procedure called within a compute region: __blt_pgi_popcountl (proba2.cpp: 1288)
PGCC-S-0155-Accelerator region ignored; see -Minfo messages (proba2.cpp: 28)
main:
28, Accelerator region ignored
1288, Accelerator restriction: unsupported call to support routine '__blt_pgi_popcountl'
PGCC/x86 Linux 16.10-0: compilation completed with severe errors
,但代码包含的行数比 1288 少得多。
我使用 mystrcmp 因为内置-在 strcmp 中需要routine seq
,但据我所知,这是不可能解决的。
但是,如果vv.count()
注释掉了,则编译成功。
看了很多关于OpenACC和OpenACC问题的资料,但没有找到对应这个问题的回复。
我该怎么办?
mpi - 使用 MPI 发送 bitset
什么是无需转换即可从位集类发送/接收位的有效方法。是否可以使用 MPI_BYTE?
如果是这样,将什么定义为要保存这些位的数组的容器?如果这不可能,哪种转换更有效,转换为 ulong 还是转换为字符串?
c++ - 将位集转换为有符号
我有一个 std::bitset<32> 并且我想隔离正确的 16 位并输出这些位,就好像它们是有符号数一样。我还想将整个 32 位的东西输出为有符号的数字。但是,Bitset 不支持带符号的 int to_string()。
例如 1010000000100001 1111111111111111:
我想要一个输出是:
-1608384513 为整个序列
-1 表示右 16 位。
任何转换它们的巧妙方法?
c++ - 如何测试 std::bitset 的随机性?
我使用下面的代码创建随机位集。现在我想写一些测试并问自己如何测试位集的随机性?这个问题有好的解决方案吗?
由于位集不能表示为数字 AFAIK,我不知道如何应用某种测试,如卡方或其他。
我应该计算 1 和 0 的出现次数吗?
还有其他方法吗?
和
和
和
c++ - 初始化 (bitset,int) 对的向量
初始化时
但我gettig错误:
'pair' 不能出现在常量表达式中
如何制作一对bitset,int的向量?
c++11 - O(log n)中的c ++位集逻辑运算?
根据这篇文章,对位集执行按位运算的性能是 O(n),我如何使它成为 O(log n)。谢谢。
c++ - 位集之间的c ++ XOR
这导致
这很好,但也修改了 a1,在 XOR 操作之后变为:
为什么会这样?在不创建临时变量的情况下如何避免这种情况?