Библиотека LEDA в cpp ‘утверждение’ ошибка?

Я новичок в 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’ из хэш-карты, которая отображала идентификатор узла на адрес leda_node.

В части моей программы hash_map передавал нулевое значение одному из идентификаторов узла, поэтому, когда я пытался создать ребро, возникла ошибка утверждения.

0

Решение

Это может быть внутренняя ошибка в Leda, но, скорее всего, завершение библиотеки завершится неудачно, когда вы передадите ей неверно сформированный ввод. Так что один из G, u, v и e не будет настроен правильно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]