std::bitset
Megjelenés
Főnév
std::bitset (tsz. std::bitsets)
- (informatika) A
std::bitsetegy C++ sablonosztály, amely fix méretű bitmező (bitarray) kezelésére szolgál. Hatékony, mert minden bitet külön tárol és manipulálhatóvá tesz bitműveletekkel.
Alapok
A bitset egy adott méretű bináris tömbként működik, amely bitenként hozzáférhető. Mivel a mérete fordítási időben ismert, nem dinamikusan változtatható.
Deklaráció és inicializálás
#include <bitset>
#include <iostream>
int main() {
std::bitset<8> bits1; // 00000000
std::bitset<8> bits2(42); // 00101010
std::bitset<8> bits3("1100"); // 00001100
std::cout << bits1 << "\n" << bits2 << "\n" << bits3 << "\n";
}
Funkciók és használat
Alapműveletek
A bitset támogatja a bitenkénti hozzáférést és módosítást.
std::bitset<8> bits(5); // 00000101
bits.set(2); // 00000101 -> 00000111 (Beállítja a 2. bitet)
bits.reset(0); // 00000111 -> 00000110 (Lenullázza a 0. bitet)
bits.flip(1); // 00000110 -> 00000100 (Invertálja az 1. bitet)
std::cout << bits; // 00000100
Értékek kiolvasása
std::cout << bits.test(2); // true (mert a 2. bit be van állítva)
std::cout << bits[1]; // false (mert a 1. bit nincs beállítva)
std::cout << bits.count(); // 1 (beállított bitek száma)
Konverziók
std::cout << bits.to_ulong(); // 4 (binárisból decimálissá)
std::cout << bits.to_string(); // "00000100" (stringgé alakítás)
Bitműveletek
A bitset támogatja a bináris műveleteket.
std::bitset<8> a("10101010"), b("01010101");
std::bitset<8> c = a & b; // 00000000
std::bitset<8> d = a | b; // 11111111
std::bitset<8> e = a ^ b; // 11111111
std::bitset<8> f = ~a; // 01010101
Összegzés
A std::bitset hatékonyan használható bitműveletekhez, például engedélykezeléshez, flag-ek tárolásához és bináris számításokhoz. Ha dinamikus méretre van szükség, a std::vector<bool> vagy boost::dynamic_bitset lehet jobb választás.
- std::bitset - Szótár.net (en-hu)
- std::bitset - Sztaki (en-hu)
- std::bitset - Merriam–Webster
- std::bitset - Cambridge
- std::bitset - WordNet
- std::bitset - Яндекс (en-ru)
- std::bitset - Google (en-hu)
- std::bitset - Wikidata
- std::bitset - Wikipédia (angol)