小编Rag*_*u G的帖子

如何在不复制迭代器和没有内存泄漏的情况下擦除STL向量中的元素?

这是编辑过的代码

vector<vector<int> > vec; 
vector<vector<int> >::iterator vit; 
vector<int>::iterator it;
for ( vit = vec.begin(); vit != vec.end(); ++vit)
{
    it = vit->begin();
    while(it != vit->end()) 
    {
        while(it != vit->end())
        {

            if( condition )
            {
                while( condition )
                {
                    //going back to certain it
                    //erase an element
                    it  = vit->erase(it);
                }
            }
            else
                ++it;
        }
        ++it;
    }
}
Run Code Online (Sandbox Code Playgroud)

内在的同时循环回到某一点.链接丢失.擦除元素而不复制迭代器并且在后循环中没有内存泄漏并再次向前移动?

c++ memory iterator stl vector

-5
推荐指数
1
解决办法
360
查看次数

标签 统计

c++ ×1

iterator ×1

memory ×1

stl ×1

vector ×1