現在、次のようなベクトルのベクトルを使用しています。
typedef pair<int, int> vertex;
vector < vector<vertex> > adj_list(n); // n is number of vertices
// Input graph
for (int i = 0; i < edges; i++ )
{
cin >> source >> target >> weight;
vertex v(target, weight);
adj_list[source].push_back(v);
}
リストのベクトルです。
vector < list<vertex> > adj_list(n);
より良いオプション?はいの場合、なぜですか? 私の主な関心事は、ダイクストラのアルゴリズムを実装するために、隣接リストを効率的に作成し、特定の頂点に接続されているすべての頂点を高速に読み取れるようにすることです。