如何使用vector.begin()和vector.end()遍历矩阵?

时间:2018-08-16 21:06:40

标签: c++ matrix

我知道这是不切实际的,我可以始终使用.size()或auto&col:矩阵,但是您如何使用以下方法遍历矩阵:

   for (std::vector<vector<int>>::iterator col = matrix.begin(); col != matrix.end(); ++col){
       for (std::vector<int>::iterator row = matrix[col].begin(); row != matrix[col].end(); row++){
          std::cout << matrix[col][row] << std::endl;
   }
}

我认为这是一个糟糕的主意,但想找到一种方法来处理2D向量。但是,如果您能弄清楚,那就太好了。

1 个答案:

答案 0 :(得分:2)

您可以这样做:

std::vector<std::vector<int>> matrix;

for (auto col = matrix.begin(); col != matrix.end(); ++col)
    for (auto el = col->begin(); el != col->end(); ++el)
        std::cout << *el << std::endl;