Maison >développement back-end >C++ >Comment initialiser un Bitset avec une taille variable en C ?

Comment initialiser un Bitset avec une taille variable en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-19 16:18:03797parcourir

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;

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;
};

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

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

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;

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!

Déclaration:
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