2016-11-29 7 views
0

私はstlibraryとグラフについて学んでいたので、グラフはこのようなリストのベクトルとして表現できることが分かりました。ここで、1 2 3 4 5 6は私はすでにどのように私ループそれはに至る可能性、ベクトルリストにこれらの値を保存し、頂点、および頂点1から私は3から6に、数2に行くことができる、などリストのベクトルをループする

1 2 3 4 5 6 
2 6 1 2 
     2 

しかし、グラフを取得しますか?私のベクトルリストは_verticesEdgesと呼ばれています。

同様に、このような出力を得るために:

ヴェル1:2

ヴェル2:

ヴェル3:6

ヴェル4:1 2

ヴェル5:

バーチェス6:2

あなたの助けをお待ちしています!

+1

なお[ 'STL!= std'(http://stackoverflow.com/questions/5205491/whats-the-difference-between-stl-and-c-standard-library)。あなたは助けを得るためにいくつかのコードを表示する必要があります。 [mcve]を入力してください。 – user463035818

+0

ベクトルを反復処理する方法を検索したいと思います。また、@ tobi303が言ったように、あなたは助けを得るためにここにいくつかのコードを表示する必要があります。 –

答えて

0

これがあれば容器全体を反復処理するためのより良いと近代的な方法であるので、インデックスは、リストを反復するためrange-based forを使用して必要とされているので、私は、リストを反復処理するために通常のforを使用しています。この

std::vector<std::list<int>> vecOfLists; 
// fill vecOfLists; 
for (size_t i = 0; i < vecOfLists.size(); ++i) { 
    std::cout << "Vertice " << i + 1 << ": "; 
    for (int num : vecOfLists[i]) { 
     std::cout << num << " "; 
    } 
    std::cout << std::endl; 
} 

ような何か索引は必要ありません。

1
Assuming you have stored from index 1 to n (that means size of 0th index of your vector is zero), where n is number of vertices, 

for (int i = 1; i <= n; i++) 
{ 
    cout << "Vertex " << i << ": "; 

    for (int j=0; j< _verticesEdges[i].size(); j++) 
    cout << _verticesEdges[i][j] << " "; 
    cout << "\n"; 
}