【问题标题】:Looping through a vector of lists循环遍历列表向量
【发布时间】:2016-11-29 09:44:53
【问题描述】:

所以我正在学习 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:

顶点 6:2

感谢您的帮助!

【问题讨论】:

  • 请注意stl != std。您必须显示一些代码才能获得帮助。请提供minimal reproducible example
  • 我会搜索如何遍历向量。另外,正如@tobi303 所说,您需要在此处显示一些代码以获得帮助。

标签: c++ list vector graph stl


【解决方案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";
}

【讨论】:

    【解决方案2】:

    类似的东西

    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 来遍历列表,因为如果您不需要索引,这是遍历整个容器的更好和现代的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-22
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多