CPP 中的 LEDA 库'assertion'错误?

LEDA library in cpp 'assertion' error?

本文关键字:错误 assertion 中的 CPP LEDA      更新时间:2023-10-16

我是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是边。

我可以自己调试我的代码,但让我困惑的是,这个错误意味着什么?

编辑

问题是什么:

我正在从一个将节点ID映射到leda_node地址的哈希映射中读取所有可用的目标节点'v'。

在我的程序的一部分,hash_map传递一个null值给一个节点ID,这就是为什么当我试图创建一个边,有断言错误。

这可能是Leda的内部错误,但更有可能的是,当您传递给它格式不正确的输入时,库断言失败。所以G, u, v, e中的一个不会正确设置。