Heim > Backend-Entwicklung > C++ > Wie initialisiere ich ein Bitset unbekannter Größe in C?

Wie initialisiere ich ein Bitset unbekannter Größe in C?

Susan Sarandon
Freigeben: 2024-11-23 21:36:11
Original
612 Leute haben es durchsucht

How to Initialize a Bitset of Unknown Size in C  ?

So definieren Sie die Bitset-Größe bei der Initialisierung

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;
};
Nach dem Login kopieren

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;
};
Nach dem Login kopieren

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;
};
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage