0

ベクトルの配列で実装された隣接テーブルを使用してBFSアルゴリズムを実装しようとしました。0からではなく1から入力を保存し始めます。

編集:コードを更新しました:http://ideone.com/GZwPPコンパイルして実行しますが、グラフにないノードを検索しようとすると、次のエラーが発生します:

terminate called after throwing an instance of 'std::out_of_range'
  what():  vector::_M_range_check
Aborted
4

1 に答える 1

1

バグは本当に微妙です。コードに次のものがあります。

for(i = 1; i <= adj[front].size() - 1 && adj[front].at(0) != 0; i++)

は何型size()ですか?無印タイプです。その場合size() == 0算術オーバーフローがsize() - 1 > 0原因です。行を次のように変更する必要があります。

for(i = 1; i < adj[front].size() && adj[front].at(0) != 0; i++)
于 2012-06-28T20:50:55.513 に答える