萌新今天突然想用结构体套结构体里面还有一些奇怪函数的写法来使得我的代码变得更加美观。
但是我失败了,编译器说:“非静态成员引用必须与特定对象相对。”
这里大概明白了 CE 的原因,但是在不改变我目的的情况下(即还是结构体套结构体,且不使用 static
),能否有人可以告诉我如何修改呢?
struct Tree{
struct Node{int dep;}tr[N];
Tree(){memset(tr,0,sizeof(tr));}
struct Edge{int nxt,to,val;}e[N<<1];int fir[N];
void add(int u,int v,int w,int i){e[i]=(Edge){fir[u],v,w},fir[u]=i;}
struct Beizeng{
int fa[N][20],data[N][20];
void init(){
for(int i=1;i<20;++i){
for(int j=1;j<=n;++j){
fa[j][i]=fa[fa[j][i-1]][i-1];
data[j][i]=min(data[j][i-1],data[fa[j][i-1]][i-1]);
}
}
}
void lca(int u,int v){
if(tr[u].dep<tr[v].dep) swap(u,v);//报错位置,是tr的原因
}
};
}t,now;