C ++错误:向量迭代器+偏移量超出范围。

时间:2018-06-22 13:14:06

标签: c++ vector iterator

我在向量迭代器中有一个问题。 这是我的练习代码。

#include<vector>
#include<iostream>
using namespace std;
int main() {
    vector<int> myvector(3, 100);
    vector<int>::iterator it;

    it = myvector.end();
    it = myvector.insert(it, 200);

    myvector.insert(it, 2, 300);
    it = myvector.end(); ////////// here is the point what i want to ask. ///////////

    std::vector<int> anothervector(2, 400);
    myvector.insert(it - 2, anothervector.begin(), anothervector.end());

    int myarray[] = { 501,502,503 };
    myvector.insert(myvector.begin(), myarray, myarray + 3);

    cout << "myvector contains:";
    for (it = myvector.begin(); it < myvector.end(); it++)
        cout << ' ' << *it;
    cout << '\n';

    return 0;

}

删除此代码将引发错误:向量迭代器+偏移量超出范围。

it = myvector.end();

我能得到为什么此代码使程序成功的答案吗?谢谢!!

0 个答案:

没有答案