Maison > développement back-end > C++ > le corps du texte

Comment initialiser un Bitset avec une taille variable en C ?

Linda Hamilton
Libérer: 2024-11-19 16:18:03
original
787 Les gens l'ont consulté

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

Personnalisation de la taille du jeu de bits à l'initialisation

En C , déclarer et utiliser un jeu de bits est simple pour une taille connue, comme le montre cet exemple :

std::bitset<6> myBitset;
Copier après la connexion

Cependant, définir un jeu de bits avec une taille variable lors de l'initialisation de la classe présente un défi. Considérez ce code non compilable :

#include <bitset>
class Test
{
public:
     std::bitset *myBitset;
};
Copier après la connexion

L'initialisation du jeu de bits en fonction d'une taille déterminée dynamiquement échoue également :

int size = getDependentSizeForBitset();
myBitset = new bitset<size>();
Copier après la connexion

Solution :

Pour résoudre ce problème, il existe deux options :

  • Bits dynamiques de Boost :
    Boost fournit un Dynamic_bitset qui vous permet de spécifier dynamiquement la taille du jeu de bits lors de l'initialisation.
  • Vecteur Spécialisation :
    Vecteur en C est spécialisé pour agir comme un jeu de bits. Bien que cela puisse prêter à confusion, cela vous permet d'initialiser un jeu de bits avec une taille variable en utilisant :
std::vector<bool> myBitset;
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal