2016-11-29 208 views
0

所以我正在學習stlibrary和圖表,所以我發現圖表可以表示爲列表的向量,可能是這樣的,其中1 2 3 4 5 6是頂點,從頂點1我可以去數2,從3到6等循環遍歷列表向量

1 2 3 4 5 6 
2 6 1 2 
     2 

但是,我已經保存在矢量列表中的這些價值觀,我怎麼可能通過它循環,得到圖表?我的向量列表被稱爲_verticesEdges。

等,以得到一個輸出這樣的:

頂點1:2

頂點2:

頂點3:6

頂點4:1 2

頂點5:

Vertice 6:2

感謝您的幫助!

+1

注意,['STL!= std'](http://stackoverflow.com/questions/5205491/whats-the-difference-between-stl-and-c-standard-library)。你將不得不顯示一些代碼來獲得幫助。請提供[mcve]。 – user463035818

+0

我會搜索如何遍歷一個向量。另外,正如@ tobi303所說,你需要在這裏展示一些代碼來獲得幫助。 –

回答

0

像這樣的事情

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; 
} 

我使用平常for通過列表迭代,因爲需要指標,並使用range-based for通過列表迭代,因爲這是更好的和現代的方式,通過整個容器,如果迭代你不需要索引。

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"; 
}