萌新不会C++语法,CE求助
  • 板块学术版
  • 楼主tommy0221
  • 当前回复5
  • 已保存回复5
  • 发布时间2020/7/29 19:49
  • 上次更新2023/11/6 21:50:07
查看原帖
萌新不会C++语法,CE求助
123384
tommy0221楼主2020/7/29 19:49

谔谔,手写了个bitset,过不去编译。。。

我想用数组下标的形式用bitset内部的元素,结果就CE了。。。

错误信息(就是主函数那一行):

lvalue required as left operand of assignment(VScode)

赋值运算的左操作数必须是左值(洛谷IDE)

code:

struct Bitset {
    const static int bit_len=1000010;
    const static int bit_num=64;
    const static ull ull_INF=(1ull<<63)-1+(1ull<<63);
    const static int Last6=63;
    const static int len=((bit_len-1)>>6)+1;
	ull p[bit_len/bit_num+5];
	Bitset() {memset(p,0,sizeof(p));}
    void reset(){*this=Bitset();}
	int operator [](const int &k){return (p[k>>6]>>(k&Last6))&1;}
	Bitset operator & (const Bitset &bs)const{
		Bitset res;
		for(int i=0;i<len;++i)res.p[i]&=bs.p[i];
		return res;
	}
	Bitset operator | (const Bitset &bs)const{
        Bitset res=*this;
		for(int i=0;i<len;++i)res.p[i]|=bs.p[i];
		return res;
	}
	Bitset operator ^ (const Bitset &bs)const{
        Bitset res=*this;
		for(int i=0;i<len;++i)res.p[i]^=bs.p[i];
        return res;
	}
	Bitset operator << (const int &k)const{
        Bitset res;
		int x=k>>6,y=k&Last6;ull lst=0;
		for(int i=0;i<len-x;--i) {
			res.p[i+x]=(lst|(p[i]<<y));
			lst=p[i]>>(bit_num-y);
		}
        return res;
	}
    Bitset operator >> (const int &k)const{
        Bitset res;
        int x=k>>6,y=k&Last6;ull lst=0;
        for(int i=len-1;i>=x;--i) {
            res.p[i-x]=(lst|(p[i]>>y));
            lst=p[i]<<(bit_num-y);
        }
        return res;
    }
    Bitset operator &= (const Bitset &bs){*this=*this&bs;return *this;}
    Bitset operator |= (const Bitset &bs){*this=*this|bs;return *this;}
    Bitset operator ^= (const Bitset &bs){*this=*this^bs;return *this;}
    Bitset operator <<= (const int &k){*this=*this<<k;return *this;}
    Bitset operator >>= (const int &k){*this=*this>>k;return *this;}
};
Bitset bs;
signed main() {
    bs[5]=1;
}

其余如果有错可以指出,但是这个CE最为要紧。(我差不多100%肯定有错,因为从来没成功运行过/kk)

谢绝回复bfs

如果回复一个网址,那么请先确定那份代码能过编译,我就bfs到了好几份编译错误和我一样的代码。。。

谢谢路过,能帮忙更好。

2020/7/29 19:49
加载中...