0

私は 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 

このエラーは私のコードによるものではなく、そのようなエラーの意味についてかなり混乱しています。2 つのノード間のグラフで新しいエッジを作成しようとすると、エラーが発生します。

G.new_edge(u, v, e);   

「G」は私のグラフ、u と v はソース ノードとターゲット ノード、e はエッジです。

自分でコードをデバッグできますが、混乱するのは、このエラーが何を意味するのでしょうか?

編集

問題の内容:

ノード ID を leda_node のアドレスにマップしたハッシュ マップから、使用可能なすべてのターゲット ノード 'v' を読み取っていました。

プログラムの一部で、hash_map がノード ID の 1 つに null 値を渡していました。これが、エッジを作成しようとしたときにアサート エラーが発生した理由です。

4

1 に答える 1

0

これは Leda の内部エラーである可能性がありますが、不適切な形式の入力を渡すと、ライブラリ アサートが失敗する可能性が高くなります。したがって、G、u、v、および e のいずれかが正しく設定されません。

于 2016-10-03T07:44:52.113 に答える