如何遍历未知大小的2D矢量?

时间:2018-02-04 20:56:38

标签: c++ loops 2d-vector

我试图访问具有未知行数和列数的2D矢量中的int值。

我试过这个:

for(vector<int> vec : matrix){
        for(int i : vec){
            queue_lista.push(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]);
    }
}

1 个答案:

答案 0 :(得分:0)

在您的第一个代码段中,i接受向量中的值,而不是索引。因此,您应该使用push(i)而不是vec[i]

在你的第二个片段中,col是一个迭代器,而不是索引。所以你不应该使用下标。 *col是您的数据。

效果说明:如果您让vec成为常量引用而不是副本,那么第一个代码段的效率会更高。