小编Pat*_*Pat的帖子

为什么这段代码在调试时要慢100倍?

我正在使用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++;
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ stl visual-c++

9
推荐指数
1
解决办法
6754
查看次数

标签 统计

c++ ×1

stl ×1

visual-c++ ×1