我想在 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/