关于结构体内定义子结构体
  • 板块学术版
  • 楼主xtx1092515503
  • 当前回复14
  • 已保存回复14
  • 发布时间2022/6/1 09:19
  • 上次更新2023/10/28 00:10:28
查看原帖
关于结构体内定义子结构体
123369
xtx1092515503楼主2022/6/1 09:19

RT,我现在要实现一个数据结构,比方说一棵可以求 LCA 的树。我以 struct 的形式实现了这棵树。我在内部定义了一个子结构体 Dia,用以维护树上的直径信息。

struct LCATree{
//something
int DIS(int x,int y){
	//something
}
struct Dia{
	int x,y,z;
	Dia(){}
	Dia(int X,int Y){x=X,y=Y,z=DIS(x,y);}
};
};

但是上述代码会报错,显示是 Dia 中调用 DIS 函数的时候会出现问题。假如把 DIS 函数和所有与之相关的变量全部加上 static 修饰,那么编译就成功了;可是,此时所有被 static 修饰的变量就变成了在所有 LCATree 类型的元素间共享的变量,并非在每个元素间独立的变量。

有没有办法,使得在每个 LCATree 的元素中独立存在 Dia 的子定义?或者,有没有什么更好的等价写法?望各位大佬不吝赐教。

2022/6/1 09:19
加载中...