Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用vector.begin()和vector.end()遍历矩阵?_C++_Matrix - Fatal编程技术网

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

C++ 如何使用vector.begin()和vector.end()遍历矩阵?,c++,matrix,C++,Matrix,我知道这不实用,我可以始终使用.size()或auto&col:matrix,但是如何使用以下方法迭代矩阵: 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

我知道这不实用,我可以始终使用.size()或auto&col:matrix,但是如何使用以下方法迭代矩阵:

   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;
   }
}
for(std::vector::iterator col=matrix.begin();col!=matrix.end();++col){
for(std::vector::iterator row=matrix[col].begin();row!=matrix[col].end();row++){

std::cout您可以这样做:

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;
std::向量矩阵;
用于(自动列=矩阵。开始();列!=矩阵。结束();++列)
用于(自动el=col->begin();el!=col->end();++el)

std::cout您可以这样做:

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;
std::向量矩阵;
用于(自动列=矩阵。开始();列!=矩阵。结束();++列)
用于(自动el=col->begin();el!=col->end();++el)

STD:这绝对不是你使用迭代器的方法。你用什么资源来学习C++?不要用向量的向量作为矩阵。矩阵是矩形块的东西,而不是列表的列表。@鲍姆矢量的向量(预大小)在很多方面都是矩阵的合理近似值,但对于性能要求很高的情况肯定不是这样。@NeilButterworth我不同意。矩阵和嵌套向量唯一的共同点是双重索引。除此之外,语义是不正确的。@Baum除了索引之外,你在想什么语义?这就是de你不知道如何使用迭代器。你用什么资源来学习C++?不要用向量的向量作为矩阵。矩阵是矩形块的东西,而不是列表的列表。@鲍姆矢量的向量(预大小)在许多方面都是矩阵的合理近似值,但对于性能要求很高的情况肯定不是这样。@NeilButterworth我不同意。矩阵和嵌套向量唯一的共同点是双重索引。除此之外,语义是不正确的。@Baum除了索引,你在想什么语义?@Captain不,op正在尝试使用带下标运算符的迭代器。@船长不,不是。op当前所做的不会编译。对不起,我不想这样迭代。但是谢谢you@Captain不,op正在尝试将迭代器与下标运算符一起使用。@不,不是。op当前正在执行的操作无法编译。抱歉,我不尝试像那样迭代。但是谢谢你