I'm using MSVC 2010.
I'm trying to remove duplicate (without keeping any of them) from a list
Why is this code 100 times slower in debug mode?
Is there any other way to remove all objects that are equivalent and make it faster in debug mode?
It is to the point I can't use debug at the moment. It take minutes to process while few seconds in release.
void SomeFunction()
{
std::list<Something> list;
std::list<Something>::iterator it1;
std::list<Something>::iterator it2;
for (it1 = list.begin(); it1 != list.end(); it1++)
{
for (it2 = list.begin(); it2!=list.end(); it2++)
{
if (it1->SomeValue() == it2->SomeValue())
{
if (it1 != it2)
{
list.erase(it1);
list.erase(it2);
it2 = list.begin();
it1 = it2++;
}
}
}
}
}
See Question&Answers more detail:os