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
Freigeben: 2024-11-19 16:18:03
Original
832 Leute haben es durchsucht

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

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

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

int size = getDependentSizeForBitset();
myBitset = new bitset<size>();
Nach dem Login kopieren

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

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!

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