C++ 如何迭代未知大小的2D向量?
我试图访问2D向量中的int值,该向量的行数和列数未知 我试过这个:C++ 如何迭代未知大小的2D向量?,c++,loops,2d-vector,C++,Loops,2d Vector,我试图访问2D向量中的int值,该向量的行数和列数未知 我试过这个: for(vector<int> vec : matrix){ for(int i : vec){ queue_lista.push(vec[i]); } } for(向量向量向量:矩阵){ 用于(int i:vec){ 队列列表推送(vec[i]); } } 这是: vector< vector<int> >::iterat
for(vector<int> vec : matrix){
for(int i : vec){
queue_lista.push(vec[i]);
}
}
for(向量向量向量:矩阵){
用于(int i:vec){
队列列表推送(vec[i]);
}
}
这是:
vector< vector<int> >::iterator row;
vector<int>::iterator col;
for (row = nums.begin(); row != nums.end(); row++) {
for (col = row->begin(); col != row->end(); col++) {
//queue_lista.push(nums[col][row]);
}
}
vector::迭代器行;
向量::迭代器列;
for(row=nums.begin();row!=nums.end();row++){
对于(col=行->开始();col!=行->结束();col++){
//队列列表推送(nums[col][row]);
}
}
在您的第一个代码片段中,i
接受向量中的值,而不是索引。因此,您应该只使用push(i)
而不是vec[i]
在第二个代码段中,col
是迭代器,而不是索引。所以你也不应该在订阅时使用它*col
是您的数据
性能说明:如果让
vec
作为一个常量引用而不是副本,那么第一个代码段将更加高效。如果它是std::vector
,那么它的大小如何未知?