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();

posted @ 2022-03-14 17:17  TimMCBen  阅读(49)  评论(0)    收藏  举报