- //移除元素,在移除前先输出元素
- #include < iostream > #include < vector > #include < set > #include < iterator > using namespace std;
- int main() {
- int data[] = { - 2,
- 3,
- 0,
- 9,
- 12,
- -5,
- -1,
- 7
- };
- vector < int > coll(data, data + sizeof(data) / sizeof(data[0]));
- vector < int > ::iterator pos;
- for (pos = coll.begin(); pos != coll.end();) {
- cout << *pos << " ";
- pos = coll.erase(pos); //删除该元素,并返回下一元素的位置 这样迭代器不会失效,并指向下一位置
- }
- cout << endl;
- set < int > coll1(data, data + sizeof(data) / sizeof(data[0]));
- set < int > ::iterator pos1;
- for (pos1 = coll1.begin(); pos1 != coll1.end();) {
- cout << *pos1 << " ";
- coll1.erase(pos1++); //删除该元素后,该迭代器失效,可是pos1已经指向下一元素位置
- }
- cout << endl;
- vector < int > s;
- vector < int > ::iterator p = s.begin();
- for (int i = 0; i < 10; i++) {
- p = s.insert(p, i); //正确的插入方法
- ++p;
- }
- copy(s.begin(), s.end(), ostream_iterator < int > (cout, " "));
- cout << endl;
- system("pause");
- return 0;
- }
来源: http://lib.csdn.net/snippet/cplusplus/44876