【问题标题】:Dynamic bit vector in C/C++C/C++ 中的动态位向量
【发布时间】:2011-06-04 20:54:37
【问题描述】:

我正在寻找可以使用的 C 或 C++ 中现成的动态位向量。不幸的是,由于各种原因,我目前无法使用 Boost 库。 std:bitvector 看起来很有希望,但它是模板化的,所以我不能动态设置位向量的长度。任何人都可以建议吗?谢谢!

【问题讨论】:

  • 你不能使用vector<int> 作为你的位向量的基础吗?
  • 您可以使用保留任意数量的数据,或者直接调用 push_back
  • Boost 取消资格的原因是什么?我问是因为我想确保人们可能推荐的 other 第三方类不会也遭受阻止您使用 Boost 的相同问题。
  • 请参阅stackoverflow.com/q/551579。另外,请详细列出您的要求。您是否需要使用 C 指针以压缩形式访问这些位?如果是这样,您可以使用vector<char>vector<int> 以及一些位操作来实现您自己的可调整大小的位容器。

标签: c++ bitmap


【解决方案1】:

您不必为了使用dynamic_bitset 而依赖所有的boost 及其安装过程。如果该类适合您的目的,请将其源文件专门复制到您的项目树中,并将其放在名为“boostcopy”(或类似名称)的单独命名空间中。

在类似的注释中,我创建了自己的可调整大小的数组类,它以名为“Nstate”的 dynamic_bitset 为模型,您可以将其模板化为任意基数,并且仍然可以紧凑地打包。也许感兴趣:

http://hostilefork.com/nstate/

【讨论】:

    【解决方案2】:

    我从未使用过 vector(请参阅 Scott Meyers 的 Effective STL item 18),但它可能正是您要找的。​​p>

    【讨论】:

      猜你喜欢
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-11
      • 2012-12-15
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多