遍历2D向量,无法取消引用?

时间:2018-10-06 19:06:31

标签: visual-c++ iterator 2d-vector

我正在尝试初始化两个迭代器,两个是我的2D向量,一个是行,一个是列。我这样做是这样的:

vector<vector<int> > v;
    vector<vector<int> >::iterator r;
    vector<int>::iterator c;

    r = v.begin();
    c = r->begin();

当我运行代码时,出现以下弹出窗口: 调试断言失败! 表达式:不能取消引用已初始化向量迭代器的值。

此语句有som问题:

c = r->begin();

但是看不到为什么?

谢谢

1 个答案:

答案 0 :(得分:0)

v为空,因此r并不指向有效的vector<int>实例(没有实例指向)。您实际上是在取消引用v.end(),因此您的程序表现出未定义的行为。