bitset 传递给函数的 C++ vector

标签 c++ vector bitset

我想在 C++ 中实现一个算法,它需要一个动态分配的巨大位集 vector (512x18,000,000 位 - 我有 16Gb 的 RAM)。

a) 这很好用

int nofBits=....(function read from db);
vector < bitset <nofBits> > flags;
flags.resize(512);

但是我如何将它(通过引用)传递给一个函数呢?请记住,我不知道编译时的 nofBits。

我可以用一个

vector<vector<bool> > 

但在内存使用方面会不会更糟?

最佳答案

我最近遇到了同样的问题,但是就像 std::array 一样,你需要在编译时知道位集的大小,因为它是一个模板参数。我找到了 boost::dynamic_bitset作为替代方案,它就像一个魅力。

关于bitset 传递给函数的 C++ vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17629210/

相关文章:

c++ - 按 Enter 继续

c++ - c2955 错误 - 使用类模板需要参数列表

scala - 在 Scala 中迭代 java.util.BitSet

c++ - 使用类修改字节中的位

java - 如何保存字符串字节而不丢失信息?

c++ - 如何在 WinCE 中创建 .bmp

c++ - 停止后制作音频 'resume'?

c++ - 在同一指令中引用和取消引用

c++ - 将 vector 末尾的删除优化为调整大小

vector - 附加到向量作为 hashmap 的值