在 C 中定义位集时,您可以在初始化时指定大小。然而,当变量声明后才知道大小时,这就变得很困难。
考虑以下代码:
#include <bitset> class Test { public: std::bitset *myBitset; };
此代码将无法编译,因为位集的大小没有指定。您不能使用指向未知大小的位集的指针。
一种解决方案是使用Boost库中的dynamic_bitset类:
#include <boost/dynamic_bitset.hpp> class Test { public: boost::dynamic_bitset<> myBitset; };
这允许您创建任何大小的位集在运行时。
另一个解决方案是使用向量布尔值:
#include <vector> class Test { public: std::vector<bool> myBitset; };
这并不理想,但它有效,因为布尔向量专门用于像位集一样。
无论您选择哪种解决方案,请记住指定大小很重要初始化时的位集。否则,您将遇到编译器错误。
以上是如何在 C 中初始化未知大小的位集?的详细内容。更多信息请关注PHP中文网其他相关文章!