首頁 >後端開發 >C++ >如何在 C 中初始化未知大小的位元集?

如何在 C 中初始化未知大小的位元集?

Susan Sarandon
Susan Sarandon原創
2024-11-23 21:36:11602瀏覽

How to Initialize a Bitset of Unknown Size in C  ?

如何在初始化時定義位集大小

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn