成员函数 |
功能 |
set |
设置指定位或所有位为1(即设置为“已设置”状态) |
reset |
清空指定位或所有位,将其设为0(即设置为“未设置”状态) |
flip |
反转指定位或所有位的状态。如果位是0,则变为1;如果位是1,则变为0 |
test |
获取指定位的状态。如果位是1,则返回true;如果位是0,则返回false |
count |
获取被设置为1的位的个数(即“已设置”的位的数量) |
size |
获取位图可以容纳的位的总数。这通常指的是位图数组的总大小(以位为单位) |
any |
如果有任何一个位被设置为1(即至少有一个位是“已设置”状态),则返回true;否则返回false |
none |
如果没有位被设置为1(即所有位都是“未设置”状态),则返回true;否则返回false |
all |
如果所有位都被设置为1(即所有位都是“已设置”状态),则返回true;否则返回false |
#pragma once
#include <iostream>
#include <vector>
#include <assert.h>
namespace qi
{
template <size_t N>
class bitset
{
private:
std::vector<int> _bits;
public:
bitset();
void set(size_t pos);
void reset(size_t pos);
void flip(size_t pos);
size_t size();
size_t count();
bool test(size_t pos);
bool any();
bool none();
bool all();
void Print();
};
}