首页 >后端开发 >C++ >如何在 C 中初始化具有可变大小的位集?

如何在 C 中初始化具有可变大小的位集?

Linda Hamilton
Linda Hamilton原创
2024-11-19 16:18:03832浏览

How to Initialize a Bitset with a Variable Size in C  ?

在初始化时自定义位集大小

在 C 中,对于已知大小声明和使用位集非常简单,如以下示例所示:

std::bitset<6> myBitset;

但是,在类初始化期间定义具有可变大小的位集提出了挑战。考虑以下非编译代码:

#include <bitset>
class Test
{
public:
     std::bitset *myBitset;
};

根据动态确定的大小初始化位集也会失败:

int size = getDependentSizeForBitset();
myBitset = new bitset<size>();

解决方案:

为了解决这个问题,有两个选择:

  • Boost的动态Bitset:
    Boost提供了一个dynamic_bitset,允许你在初始化期间动态指定bitset的大小.
  • 向量专业化:
    Vector在 C 中专门充当位集。虽然这可能会令人困惑,但它允许您使用以下方式初始化具有可变大小的位集:
std::vector<bool> myBitset;

以上是如何在 C 中初始化具有可变大小的位集?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn