我正在尝试初始化两个迭代器,两个是我的2D向量,一个是行,一个是列。我这样做是这样的:
vector<vector<int> > v;
vector<vector<int> >::iterator r;
vector<int>::iterator c;
r = v.begin();
c = r->begin();
当我运行代码时,出现以下弹出窗口: 调试断言失败! 表达式:不能取消引用已初始化向量迭代器的值。
此语句有som问题:
c = r->begin();
但是看不到为什么?
谢谢
答案 0 :(得分:0)
v
为空,因此r
并不指向有效的vector<int>
实例(没有实例指向)。您实际上是在取消引用v.end()
,因此您的程序表现出未定义的行为。