在 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中文網其他相關文章!