Hi,
I heard that erasing elements using iterator is dangerous.
But I tried the below program in gcc and it is running fine.
Please explain how it is dangerous
output is:Code:#include<vector>
#include<iterator>
#include<iostream>
using namespace std;
int main()
{
vector<int>vec;
vec.push_back(123);
vec.push_back(12);
vec.push_back(23);
vec.push_back(123);
vec.push_back(1123);
vec.push_back(111);
vec.push_back(2223);
copy(vec.begin(),vec.end(),ostream_iterator<int>(cout,"---"));
cout<<endl;
vector<int>::iterator itr;
for(itr=vec.begin();itr!=vec.end();itr++)
{
if(*itr == 123)
vec.erase(itr);
}
copy(vec.begin(),vec.end(),ostream_iterator<int>(cout,"---"));
cout<<endl;
}
123---12---23---123---1123---111---2223---
12---23---1123---111---2223---

