如果我有
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/