我在向量迭代器中有一个问题。 这是我的练习代码。
#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();
我能得到为什么此代码使程序成功的答案吗?谢谢!!