隣接リストの「DebugAssertionFailed」「vectorsubscriptoutofrange」を修正する方法

rp3827

ファイルから値を呼び出すグラフの隣接リスト表現を実装しようとしています。最初の2つの数値は、それぞれ頂点の数とエッジの数です。次の行には、エッジの端点が含まれています。

例えば:

5 6

1 2

2 3

3 1

2 4

4 5

5 2

struct Edge {
    int src, dest;
};

class Graph
{
public:
    vector<vector<int>> adjList;
    Graph(vector<Edge> const &edges, int N)
    {
        adjList.resize(N);
        for (auto &edge : edges)
        {
            adjList[edge.src].push_back(edge.dest);
            //adjList[edge.dest].push_back(edge.src);
        }
    }
};
int main(int argc, char **argv)
{
    int vertices;
    int num_edges;
    vector<Edge> edges;
    //string filename(argv[1]);
    string filename("graph5.data");

    ifstream readin;
    readin.open(filename);
    readin >> vertices >> num_edges;
    for (int i = 0; i < num_edges; i++) {
        int a, b;
        readin >> a >> b;
        edges.push_back({ a,b });
    }
    readin.close();

    Graph graph(edges, vertices);
    printGraph(graph, vertices);


    return 0;

}

次の行に沿ってエラーメッセージが表示されます

「デバッグアサーションに失敗しました!

プログラム:C....。

式:範囲外のベクター添え字」

「adjList [edge.src] .push_back(edge.dest);」で例外がスローされます。

ベクトルにサイズエラーがあると思いますが、どこでどのように修正するのかわかりません。

twothreezarsix

これはコメントですが、adjListのサイズをN(今のところ5など)に変更すると、adjList [0]からadjList [4]までの5つのベクトルが含まれます。エッジ52がある場合、コードは挿入を試みます。存在しないadjList [5]に入れます。

だから変更してみてください

adjList[edge.src].push_back(edge.dest)

adjList[edge.src-1].push_back(edge.dest)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JavaScriptで隣接行列を隣接リストに変換する方法は?

分類Dev

Pythonで隣接行列を隣接リストに変換する方法は?

分類Dev

2Dリストで隣接する要素の数を計算する方法

分類Dev

加重グラフの隣接リストを埋める方法は?

分類Dev

隣接リストを逆にする方法は?

分類Dev

リストの連続する隣接要素を取得する

分類Dev

この隣接リストの実装を拡張する

分類Dev

divの中央にテキストを表示し、隣接するdivの中央にリストを表示する方法は?

分類Dev

cグラフの隣接リストを表示する

分類Dev

Pythonでリストの途中にあるすべての隣接する非ゼロ値を合計する方法

分類Dev

リスト内のすべての隣接する要素を比較するPythonの方法

分類Dev

隣接する基準に従ってポイントのリストをすばやく収集する方法

分類Dev

SQL隣接リストで指定されたルートのすべてのノードを削除する方法

分類Dev

SQLAlchemy:自己参照隣接リストテーブルのオプションの列をクエリする方法は?

分類Dev

リスト内のすべての隣接要素を取得する高速な方法はありますか?

分類Dev

リスト内のすべての隣接要素を取得する高速な方法はありますか?

分類Dev

関数をリストの隣接する要素に作用させるためのより良い方法が必要

分類Dev

隣接リストからサイクルのパスを見つける方法

分類Dev

隣接するスワップ順列のリストを作成する

分類Dev

同じ名前のみの隣接アイテムのリストを取得する方法

分類Dev

マトリックス内の隣接する要素を見つける効率的な方法

分類Dev

順序付きリストで一意の隣接整数を取得するPythonicの方法

分類Dev

ブーストライブラリ、隣接ノードを取得する方法は?

分類Dev

Haskellのリストで隣接する値をグループ化する

分類Dev

重み付きエッジリストをRの隣接行列に変換する方法

分類Dev

プロローグ-リスト内の隣接する要素を見つける

分類Dev

Pythonはリスト内の隣接する文字列要素を連結します

分類Dev

リスト内の要素を検索し、隣接する要素も保持します

分類Dev

リスト内の隣接する要素をタプルに配置します

Related 関連記事

  1. 1

    JavaScriptで隣接行列を隣接リストに変換する方法は?

  2. 2

    Pythonで隣接行列を隣接リストに変換する方法は?

  3. 3

    2Dリストで隣接する要素の数を計算する方法

  4. 4

    加重グラフの隣接リストを埋める方法は?

  5. 5

    隣接リストを逆にする方法は?

  6. 6

    リストの連続する隣接要素を取得する

  7. 7

    この隣接リストの実装を拡張する

  8. 8

    divの中央にテキストを表示し、隣接するdivの中央にリストを表示する方法は?

  9. 9

    cグラフの隣接リストを表示する

  10. 10

    Pythonでリストの途中にあるすべての隣接する非ゼロ値を合計する方法

  11. 11

    リスト内のすべての隣接する要素を比較するPythonの方法

  12. 12

    隣接する基準に従ってポイントのリストをすばやく収集する方法

  13. 13

    SQL隣接リストで指定されたルートのすべてのノードを削除する方法

  14. 14

    SQLAlchemy:自己参照隣接リストテーブルのオプションの列をクエリする方法は?

  15. 15

    リスト内のすべての隣接要素を取得する高速な方法はありますか?

  16. 16

    リスト内のすべての隣接要素を取得する高速な方法はありますか?

  17. 17

    関数をリストの隣接する要素に作用させるためのより良い方法が必要

  18. 18

    隣接リストからサイクルのパスを見つける方法

  19. 19

    隣接するスワップ順列のリストを作成する

  20. 20

    同じ名前のみの隣接アイテムのリストを取得する方法

  21. 21

    マトリックス内の隣接する要素を見つける効率的な方法

  22. 22

    順序付きリストで一意の隣接整数を取得するPythonicの方法

  23. 23

    ブーストライブラリ、隣接ノードを取得する方法は?

  24. 24

    Haskellのリストで隣接する値をグループ化する

  25. 25

    重み付きエッジリストをRの隣接行列に変換する方法

  26. 26

    プロローグ-リスト内の隣接する要素を見つける

  27. 27

    Pythonはリスト内の隣接する文字列要素を連結します

  28. 28

    リスト内の要素を検索し、隣接する要素も保持します

  29. 29

    リスト内の隣接する要素をタプルに配置します

ホットタグ

アーカイブ