bitset本身没有这样的构造方法和赋值操作,如果经常要这样操作,可以自己定义一个函数:
template
bitset& cpbitset(bitset& des, const bitset& src,int pos,int bits)
{
if ((void*)&des==(void*)&src||pos>=des.size()||pos>=src.size())
return des;
if (pos+bits>=src.size()) bits=src.size()-pos;
if (pos+bits>=des.size()) bits=des.size()-pos;
for (int i=pos;i
des[i]=src[i];
return des;
}
使用:
bitset<15> b1(2047);
bitset<20> b2;
cpbitset(b2,b1,3,5); //复制从下标3(第4位)开始的5位 (3,4,5,6,7)
bs2 = (bs,0,1); //这个就是bs2=1; 右边的bs,0,1只是个逗号表达式而已
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息