微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从值 – 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;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐