让我们看一下非常基本的实现Bitset
。
struct Bitset {
bool mask[32];
bool& operator[] (int index) {
return mask[index];
}
};
现在我可以写了
Bitset bitset;
bitset[0] = 1;
std::cout << bitset[0] << "\n";
有可能的优化。我可以使用unsigned int
而不是bool mask[32]
.
struct Bitset {
unsigned int mask;
bool& operator[] (int index) {
// ??
}
};
可以bool& operator[] (int index)
用这样的规范写吗?我认为std::bitset
正在做类似的事情,但我不知道怎么做。