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---




Reply With Quote