【问题标题】:How do I iterate through a two dimensional vector如何遍历二维向量
【发布时间】:2014-06-11 18:26:42
【问题描述】:

要遍历并打印我使用的一维向量的元素,

vector<int> a;
for(vector<int>::iterator it=a.begin();it<a.end();it++)
    cout<<*it;

我如何对二维向量做同样的事情?

【问题讨论】:

标签: c++ vector multidimensional-array


【解决方案1】:

或者因为我们使用的是 c++11...

#include <iostream>
#include <vector>

using namespace std;

int main() {

  vector<vector<int> > v = {{1,2}, {3,4}};
  for (const auto& inner : v) {
      for (const auto& item : inner) {
          cout << item << " ";
      }
  }
  cout << endl;

  return 0;
}

【讨论】:

  • 我认为值得一提的是,您的示例也是遍历每列元素数量不同的二维向量的最简单方法。
【解决方案2】:

如果二维vector 是指vector&lt;vector&lt;int&gt; &gt;,这应该可行:

vector<vector<int> > v = {{1,2}, {3,4}};
for(auto beg = v.begin(); beg != v.end(); ++beg)
{
    for(auto ceg = beg->begin(); ceg != beg->end(); ++ceg) {
        cout << *ceg << " ";
    }
    cout << endl;
}

输出:

1 2
3 4

Live demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 2015-04-07
    • 2018-03-09
    • 2015-10-07
    • 2016-09-04
    相关资源
    最近更新 更多