为啥这里 insert 不进去?


是不是因为这个?



从你发的最后一张截图来看,似乎所有的 EdgeRecord 都相等,这是几乎不可能的。因为 EdgeRecord::cost 是由两个端点的二次误差累加而来,几乎不可能存在两条边的 cost 相等。

比较两个 EdgeRecord 对象时会直接比较它们的 cost 大小。你没有给出自己实现 EdgeRecord 构造函数的思路,所以我猜测你可能没有实现(或没有正确地实现)这个构造函数,导致所有 EdgeRecord 对象的 cost 值都没有算(或者没有算对),这才会出现无法插入 set 的情况。