从值 – C中删除向量中的元素

前端之家收集整理的这篇文章主要介绍了从值 – C中删除向量中的元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有
vector<T> list

如果列表中的每个元素都是唯一的,那么删除元素最简单的方法是什么,只要我不知道它是否在列表中?我不知道元素的索引,我不在乎它是否不在列表中.

解决方法

你可以使用 Erase-remove idiom for std::vector

引用:

std::vector<int> v; 
// fill it up somehow
v.erase(std::remove(v.begin(),v.end(),99),v.end()); 
// really remove all elements with value 99

或者,如果您确定它是唯一的,只需遍历向量并擦除发现的元素.就像是:

for( std::vector<T>::iterator iter = v.begin(); iter != v.end(); ++iter )
{
    if( *iter == VALUE )
    {
        v.erase( iter );
        break;
    }
}

猜你在找的C&C++相关文章