C++ 如何使用vector.begin()和vector.end()遍历矩阵?
我知道这不实用,我可以始终使用.size()或auto&col:matrix,但是如何使用以下方法迭代矩阵: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
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当前正在执行的操作无法编译。抱歉,我不尝试像那样迭代。但是谢谢你