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.
Code
Your code isn't working because of
it++
. You are trying to increment an iterator to the erased element.But it's possible to change your code:
Note that this works because
set::erase
when called with an iterator conveniently returns the iterator to the next element.This will work I guess.