简单介绍
bitset,通常用来存储的数据是二进制,所以后面涉及一些位运算或者是二进制的时候,使用bitset容器会比较方便。
使用的时候,仍然需要包含bitset的头文件
使用
bitset的容器的创建跟其他容器有点区别
<位数>, 其他容器中<>,写的是数据类型
注意: 在bitset容器中这里写的是位数
一般情况,类型传字符串就行
#include<iostream> #include<bitset> #include<string> using namespace std; int main() { bitset<2> bi("11"); // 2 代表位数, 一般可传字符串类型 cout << bi << endl; bitset<4> bit("11"); cout << bit << endl; //如果位数不够,用0补齐(在前面补齐) cout << bit.flip() << endl; // 全部取反 按位取反, 0变成1, 1变成0 cout << bit.flip(0) << endl; //将 0 + 1 位取反 cout << bit.all() << endl; //返回是否有0 cout << bit.any() << endl; //返回是否有1 cout << bit.none() << endl; //返回是否没有1 cout << bit.count() << endl; //计算1的个数 return 0; }
>当然 bitset容器,支持所有的位运算,用bitset会让你的算法复杂度,下降很多,一般可以使用于优化奇偶性相关的问题,或者判断联通性之类的,(也可以在搜索的时候,优化访问标记)