【问题标题】:How to iterate through a 2D vector with an unknown size?如何迭代未知大小的二维向量?
【发布时间】:2018-02-04 20:56:38
【问题描述】:

我正在尝试访问具有未知行数和列数的二维向量中的 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]);
    }
}

【问题讨论】:

  • 如果是std::vector,怎么会不知道大小?

标签: c++ loops 2d-vector


【解决方案1】:

在您的第一个 sn-p 中,i 采用向量中的值,而不是索引。所以你应该只使用push(i) 而不是vec[i]

在您的第二个 sn-p 中,col 是一个迭代器,而不是一个索引。因此,您也不应该将其与下标一起使用。 *col 是您的数据。


性能说明:如果您让vec 成为常​​量引用而不是副本,则第一个 sn-p 会更有效。

【讨论】:

    猜你喜欢
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    相关资源
    最近更新 更多