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

Wie initialisiere ich ein Bitset mit einer variablen Größe in C?

Linda Hamilton
Linda HamiltonOriginal
2024-11-19 16:18:03804Durchsuche

How to Initialize a Bitset with a Variable Size in C  ?

Anpassen der Bitset-Größe bei der Initialisierung

In C ist die Deklaration und Verwendung eines Bitsets für eine bekannte Größe unkompliziert, wie in diesem Beispiel zu sehen ist:

std::bitset<6> myBitset;

Das Definieren eines Bitsatzes mit einer variablen Größe während der Klasseninitialisierung stellt jedoch eine Herausforderung dar. Betrachten Sie diesen nicht kompilierenden Code:

#include <bitset>
class Test
{
public:
     std::bitset *myBitset;
};

Das Initialisieren des Bitsatzes basierend auf einer dynamisch bestimmten Größe schlägt ebenfalls fehl:

int size = getDependentSizeForBitset();
myBitset = new bitset<size>();

Lösung:

Um dieses Problem zu lösen, gibt es zwei Optionen:

  • Dynamisches Bitset von Boost:
    Boost stellt ein dynamisches_Bitset bereit, mit dem Sie die Größe des Bitsets während der Initialisierung dynamisch angeben können.
  • Vektor Spezialisierung:
    Vector in C ist darauf spezialisiert, als Bitset zu fungieren. Dies kann zwar verwirrend sein, ermöglicht Ihnen jedoch die Initialisierung eines Bitsatzes mit einer variablen Größe mit:
std::vector<bool> myBitset;

Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein Bitset mit einer variablen Größe in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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