Pat*_*Pat 9 c++ stl visual-c++
我正在使用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)
Ree*_*sey 17
通常,由于迭代器调试支持,在Visual Studio中调试时STL非常慢.您可以通过设置_HAS_ITERATOR_DEBUGGING为0 来显着提高速度.
| 归档时间: |
|
| 查看次数: |
6754 次 |
| 最近记录: |