嵌套矢量迭代器 - 仅显示第n个矢量

时间:2015-05-16 12:04:21

标签: c++ vector stl iterator

如果对此的答案非常明显,请耐心等待我,我对STL很新。

所以我拥有的是嵌套向量。迭代器按预期工作,按顺序显示嵌套向量中每个向量中存储的值。

我的问题是,有没有办法只输出第n个向量中的值?下面给出了迭代器代码。

(因为我使用的是旧版本的C ++,所以我没有使用auto。)

vector<vector<double> >::iterator row;
vector<double>::iterator  col;
for (row = attrVectors.begin(); row != attrVectors.end(); ++row)
    for (col = row->begin(); col != row->end(); ++col) {
         //I presume I would somehow need to edit this part.
         cout<<" "<< *col;
    }

我希望问题很明确。

提前致谢

1 个答案:

答案 0 :(得分:2)

当然,这很简单:

void pintNthVector(const vector<vector<double> > &attrVectors, int n)
{
  vector<double>::iterator  col;
  vector<double> &row = attrVectors[n];
  for (col = row.begin(); col != row.end(); ++col) {
     cout<<" "<< *col;
  }
}