遍历二维向量,不能取消引用?
Posted
技术标签:
【中文标题】遍历二维向量,不能取消引用?【英文标题】:iterate through 2D vector, cant dereference? 【发布时间】:2018-10-06 19:06:30 【问题描述】:我正在尝试初始化两个迭代器,两个是我的二维向量,一个用于行,一个用于列。我是这样做的:
vector<vector<int> > v;
vector<vector<int> >::iterator r;
vector<int>::iterator c;
r = v.begin();
c = r->begin();
当我运行代码时,我得到以下弹出窗口: 调试断言失败! 表达式:不能取消引用值初始化向量迭代器。
这句话有一些问题:
c = r->begin();
但不明白为什么?
谢谢
【问题讨论】:
【参考方案1】:v
为空,因此r
没有指向有效的vector<int>
实例(没有实例可以指向)。您实际上是在取消引用 v.end()
,因此您的程序表现出未定义的行为。
【讨论】:
以上是关于遍历二维向量,不能取消引用?的主要内容,如果未能解决你的问题,请参考以下文章