Hello CF Community,↵
↵
I am new to competitive programming and recently have been learning STL ,I wanted to ask that if i want to erase the smallest value and also keep on iterating, if I am writing the following code, I am getting garbage values.↵
↵
I know that there are other ways to do this but I wanted a modification of my code ,and also I wanted to know that is it not possible to traverse set while simultaneously erasing elements.↵
<c↵
<spoiler summary="Code">↵
↵
set <int> s;↵
s.insert(1);s.insert(2);s.insert(3);↵
for(auto it=s.begin();it!=s.end();it++)↵
{↵
cout<<*it<<endl;↵
s.erase(it);↵
}↵
</code↵
</spoiler>↵
↵
↵
I am new to competitive programming and recently have been learning STL ,I wanted to ask that if i want to erase the smallest value and also keep on iterating, if I am writing the following code, I am getting garbage values.↵
↵
I know that there are other ways to do this but I wanted a modification of my code ,and also I wanted to know that is it not possible to traverse set while simultaneously erasing elements.↵
<spoiler summary="Code">↵
↵
set <int> s;↵
s.insert(1);s.insert(2);s.insert(3);↵
for(auto it=s.begin();it!=s.end();it++)↵
{↵
cout<<*it<<endl;↵
s.erase(it);↵
}↵
</spoiler>↵
↵