abc 243 D、bitset使用
bitset总结+测试
bitset总是在给定的位数中进行操作的,pos顺序指的是从右到左。
若有1的值在范围内操作后便看不到了。
//创建
bitset<7>b1;
bitset<7>b2;
//几个运算
b1|=b2;
b1^=b2;
b1&=b2;
b1=~b1;
b1<<=4;
//几个设置
b1.set(pos,num);//或者直接pos,相当于设置成1
b1.reset(); //全部设置为0
b1.reset(pos);//某位设置为0
//返回
b1[pos];
//转化
b1.to_ulong;
b1.to_string;
//计算
b1.count();
//判断
b1.any(); //有就返回
b1.none(); //是否全部为0
一种使用ABC243 D题
十进制、二进制转换
ll x;
string s = bitset<99>(x).to_string;
//接着直接对s进行操作(如果要添项或者减项)用到 pop之类
//输出s
stoll(t,0,2);
//或
stol(t,0,2);
long int stol (const string& str, size_t* idx = 0, int base = 10)
和sto还有一大堆有关的转化函数
这里再拓展和string的类型转化
string s=to_string();