A bool
utilise au moins un octet (et peut-être plus) de stockage, donc oui, au moins 8 bits.
A vector<bool>
Cependant, il stocke normalement un bool
en un seul bit, avec quelques astuces sous forme d'itérateurs proxy et autres pour imiter (en grande partie) l'accès à de véritables bool
même si ce n'est pas ce qu'ils stockent. La norme C++ originale requis ce. Les plus récents ont assoupli les exigences afin de permettre à une entreprise d'avoir accès à des informations sur ses activités. vector<bool>
de ce que l'on attendrait normalement (c'est-à-dire un ensemble de bool
objets). Cependant, malgré les exigences assouplies, un bon nombre d'implémentations continuent à les stocker sous forme condensée dans un fichier vector<bool>
.
Notez cependant qu'il n'en va pas de même pour les autres types de conteneurs - par exemple, un conteneur list<bool>
ou deque<bool>
ne peut pas utiliser une représentation par paquets de bits.
Notez également qu'en raison de l'exigence d'un itérateur de proxy (et autres), un vector<bool>
qui utilise une représentation bit-packed pour le stockage ne peut pas répondre aux exigences imposées aux conteneurs normaux, vous devez donc être prudent dans ce que vous attendez d'eux.