我是C ++的新手,也是LEDA的新手。我正在运行一个程序来计算图表中所有可用路径的成本。
但是,我遇到了这个错误:
LEDA ERROR HANDLER
Assertion failed in file _graph.cpp at line 784: w != 0
#00 at 0x00439b27 in
#01 at 0x00439cc2 in
#02 at 0x00438097 in
#03 at 0x00437cc5 in
#04 at 0x0044290c in
#05 at 0x00443f17 in
#06 at 0x00444293 in
#07 at 0x00411055 in
#08 at 0x004219c3 in
#09 at 0x00422421 in
#10 at 0x00425961 in
#11 at 0xa89e0ec5 in __libc_start_main
#12 at 0x00405169 in
这个错误不是来自我的代码,我对这种错误的含义感到很困惑。当我尝试在两个节点之间的图形中创建新边时,会发生错误。
G.new_edge(u, v, e);
' G'是我的图,u和v是源节点和目标节点,e是边缘。
我可以自己调试我的代码,但令我困惑的是,这个错误意味着什么呢?
修改
问题是什么:
我正在阅读所有可用的目标节点' v'从将节点ID映射到leda_node的地址的哈希映射。
在我程序的一部分中,hash_map将空值传递给其中一个节点ID,这就是为什么当我尝试创建边缘时,存在断言错误。
答案 0 :(得分:0)
这可能是Leda中的内部错误,但是当你传递严重错误的输入时,库断言更有可能失败。因此G,u,v和e中的一个将无法正确设置。