#include<vector>
#include<iostream>
using namespace std;
int main() {
int a[5] = { 6,7,8,9,10 };
vector<int>::iterator i;
vector<int>v(a, a + 5);
vector<int> u(10);
vector<int>::iterator p;
vector<int>::iterator q;
p = u.begin() + 1;
q = u.insert(p, v.begin(), v.end());
for (i = u.begin(); i < u.end(); ++i) {
cout << *i << " ";
}
cout << endl;
cout<< *p;
return 0;
}
容器在进行插入操作之前需要重新分配存储空间,此时之前所有的迭代器都会失效,因此输出*p将会发生错误。
#include<vector>
#include<iostream>
using namespace std;
int main() {
int a[5] = { 6,7,8,9,10 };
vector<int>::iterator i;
vector<int>v(a, a + 5);
vector<int> u(10);
vector<int>::iterator p;
vector<int>::iterator q;
p = u.begin() + 1;
p = u.insert(p, v.begin(), v.end());
for (i = u.begin(); i < u.end(); ++i) {
cout << *i << " ";
}
cout << endl;
cout<< *p;
return 0;
}
再次用p接收返回值,输出*p为6,可见插入区间时将返回插入位置的迭代器。