Comme (espérons-le) nous le savons tous, il vector<bool>
est totalement cassé et ne peut pas être traité comme un tableau C. Quelle est la meilleure façon d'obtenir cette fonctionnalité? Jusqu'à présent, les idées auxquelles j'ai pensé sont:
- Utilisez
vector<char>
plutôt un ou - Utilisez une classe wrapper et ayez
vector<bool_wrapper>
Comment gérez-vous ce problème? J'ai besoin de la c_array()
fonctionnalité.
En guise de question secondaire, si je n'ai pas besoin de la c_array()
méthode, quelle est la meilleure façon d'aborder ce problème si j'ai besoin d'un accès aléatoire? Dois-je utiliser un deque ou autre chose?
Éditer:
- J'ai besoin d'un dimensionnement dynamique.
- Pour ceux qui ne savent pas, il
vector<bool>
est spécialisé pour que chacunbool
prenne 1 bit. Ainsi, vous ne pouvez pas le convertir en un tableau de style C. - Je suppose que "wrapper" est un peu un abus de langage. Je pensais à quelque chose comme ça:
Bien sûr, alors je dois lire dans un en my_bool
raison de problèmes d'alignement possibles :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;