如何迭代未知大小的二维向量?
Posted
技术标签:
【中文标题】如何迭代未知大小的二维向量?【英文标题】: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
,怎么会不知道大小?
【参考方案1】:
在您的第一个 sn-p 中,i
采用向量中的值,而不是索引。所以你应该只使用push(i)
而不是vec[i]
。
在您的第二个 sn-p 中,col
是一个迭代器,而不是一个索引。因此,您也不应该将其与下标一起使用。 *col
是您的数据。
性能说明:如果您让vec
成为常量引用而不是副本,则第一个 sn-p 会更有效。
【讨论】:
以上是关于如何迭代未知大小的二维向量?的主要内容,如果未能解决你的问题,请参考以下文章