c++ - 按值从 vector 中删除元素 - C++

标签 c++ vector

如果我有

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

或者,如果您确定它是唯一的,只需遍历 vector 并删除找到的元素。比如:

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

关于c++ - 按值从 vector 中删除元素 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7631996/

相关文章:

c++ - 初始化 bool 的内联 vector

c++ - 将 vector 的元素添加到无序集合

c++ - 在 vector 和 map 上执行 erase(iterator) 时观察到的不同行为

如果旋转是特定字符,C++ 插入符号

c++ - 我的循环永远不会结束......我不明白为什么。有任何想法吗?

c++ - 用于代码完成的 Geany c++ 标记文件

c++ - 我们可以安全地依赖迭代器 v.end() 的位置吗?

c++ - vector 中突然出现的幽灵实例

c++ - 是否可以使用 double 来存储和安全检索 128 位 IPv6?

c++ - 如何将新对象添加到用户定义的类 vector 中?