翻看C++标准库,才发现在特殊容器中,有bitset类,用起来非常方便。
类声明;
template <size_t N> class bitset
用法摘抄如下:
enum Color{red,yel,green,blue,white,black};
std::bitset<6>bitColors;
bitColors.set(red); //设置对应位的值为1
bitColors.set(green);
std::cout << bitColors << std::endl; //bitset值
std::cout << bitColors.count() << std::endl; //bitset中设置为1的位置个数
std::cout << ~bitColors<< std::endl; //bitset取反
if (bitColors.any()) //bitset有位置被设置为1
{
for (int i = 0; i < 6;i++)
{
if (1 == bitColors[i]) //用下标访问
{
}
}
}