【发布时间】:2017-06-03 20:10:07
【问题描述】:
我使用向量向量创建了一个二维数组
vector< vector<int> > vvi;
我可以使用以下迭代器来迭代整个向量:
std::vector< std::vector<int> >::iterator row;
std::vector<int>::iterator col;
for (row = vvi.begin(); row != vvi.end(); ++row)
{
for (col = row->begin(); col != row->end(); ++col)
{
std::cout << *col;
}
}
我需要像这样遍历任何第 i 行,而不是遍历整个二维数组,但它不起作用
std::vector< std::vector<int> >::iterator row;
std::vector<int>::iterator col;
row = vvi[i];
for (col = row->begin(); col != row->end(); col++) {
std::cout << *col;
}
我该如何解决这个问题。任何帮助将不胜感激!
【问题讨论】:
-
auto & row = vvi[row_index];然后row.begin();等 -
您收到一条错误消息,我想。您是否难以理解信息?
-
@VTT 你的代码和我的代码有什么区别?我想我也在做同样的事情。
-
@AnandGupta
operator[]of vector 返回对项目的引用,而不是对项目的迭代器。 -
@DrewDormann 是的,我收到错误消息,我该如何解决这个问题。还有其他方法吗?
标签: c++ multidimensional-array vector iterator