我正在使用 MSVC 2010。
我正在尝试从列表中删除重复项(不保留任何一项)
为什么这段代码在调试模式下要慢 100 倍?
有没有其他方法可以删除所有等效的对象并使其在调试模式下更快?
到了我目前无法使用调试的地步。处理需要几分钟,而发布需要几秒钟。
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++;
}
}
}
}
}