Beim Definieren eines Bitsets in C können Sie die Größe zum Zeitpunkt der Initialisierung angeben. Dies wird jedoch schwierig, wenn die Größe erst bekannt ist, nachdem die Variable deklariert wurde.
Bedenken Sie den folgenden Code:
#include <bitset> class Test { public: std::bitset *myBitset; };
Dieser Code wird aufgrund der Größe des Bitsatzes nicht kompiliert ist nicht angegeben. Sie können keinen Zeiger auf ein Bitset unbekannter Größe verwenden.
Eine Lösung besteht darin, die Klasse „dynamic_bitset“ aus der Boost-Bibliothek zu verwenden:
#include <boost/dynamic_bitset.hpp> class Test { public: boost::dynamic_bitset<> myBitset; };
Damit können Sie ein Bitset beliebiger Größe erstellen zur Laufzeit.
Eine andere Lösung besteht darin, einen Vektor von Booleschen Werten zu verwenden:
#include <vector> class Test { public: std::vector<bool> myBitset; };
Das ist nicht ideal, Aber es funktioniert, weil Vektoren von booleschen Werten darauf spezialisiert sind, sich wie Bitmengen zu verhalten.
Für welche Lösung Sie sich auch entscheiden, denken Sie daran, dass es wichtig ist, die Größe der Bitmenge zum Zeitpunkt der Initialisierung anzugeben. Andernfalls treten Compilerfehler auf.
Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein Bitset unbekannter Größe in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!