0

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

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

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

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

这句话有一些问题:

c = r->begin();

但看不出为什么?

谢谢

4

1 回答 1

0

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

于 2018-10-07T17:30:56.433 回答