Wie funktioniert std::bitset?
-
Hallo Leute,
wie funktioniert diese Datenstruktur? Wie kann man z.B. in C++ genau 1 Bit Speicher reservieren? Wie wird das implementiert? Wenn das bitset intern ein char benutzt werden ja 1 Byte an Speicher benutzt.
mfg

-
Man kann in einem char aber (mind.) 8 Bits speichern. Der Zugriff läuft dann über Bithacks. Um auf das 5. Bit von
czuzugreifen, rechnet manc&(1<<5), um es zu setzenc|=1<<5und um es zu löschenc&=~(1<<5).Was halt nicht geht, ist eine Adresse auf das Bit zurückzugeben. Aus diesem Grund ist
vector<bool>broken.
-
Ja, das ist alles klar.
Meine Frage ist ob folgendes bitset genau 1 bit gross ist:
std::bitset<1>asd; std::cout << sizeof(asd) << std::endl;Es laesst sich nicht kompilieren. Wie kann man in C++ genau 1 Bit Speicher reservieren?
-
a372rng2 schrieb:
std::bitset<1>asd; std::cout << sizeof(asd) << std::endl;Es laesst sich nicht kompilieren.
-
Wie kann man in C++ genau 1 Bit Speicher reservieren?
Gar nicht.