赤石科技之手写 STL bitset
#define private public
#include <bitset>
#undef private
#include <bits/stdc++.h>
const int w = sizeof(long) * 8;
int main() {
std::bitset<100> a;
a._M_w[0] = 3;
std::cout << a[0] << std::endl; // 1
std::cout << a[1] << std::endl; // 1
std::cout << a[2] << std::endl; // 0
a._M_w[1] = 5;
std::cout << a[w + 0] << std::endl; // 1
std::cout << a[w + 1] << std::endl; // 0
std::cout << a[w + 2] << std::endl; // 1
return 0;
}
bitset 内部有一个大小为 unsigned long 数组 _M_w,其中 unsigned long 含有的 bits 数(在 Linux 下应为
这样你就有一个手写 bitset 了。
以上信息不保证正确。同样不保证在 NOI Linux 2.0 下能过编或者正确工作。请不要在正赛中使用 bitset 或者出 bitset 题。
| :::align{center} < 野史几则 | bitset | > |
|---|