c++中remove()函数如何删除元素

avatar
作者
筋斗云
阅读量:0

在 C++ 标准库 <algorithm> 中,remove() 函数用于从一个序列中移除特定元素。它的原型如下:

template <class ForwardIterator, class T> ForwardIterator remove(ForwardIterator first, ForwardIterator last, const T& value); 

参数说明:

  • firstlast 分别表示要处理的序列的起始和结束迭代器;
  • value 表示要移除的元素值。

remove() 函数并不会真正删除元素,而是将不需要删除的元素移到序列的前面,并返回一个指向“新”结束的迭代器。需要注意的是,这个迭代器并不指向被删除元素的位置。

下面是一个使用 remove() 函数的例子:

#include <iostream> #include <vector> #include <algorithm>  int main() {     std::vector<int> v = {1, 2, 3, 3, 4, 3, 5};          // 使用 remove() 函数移除所有的 3     auto new_end = std::remove(v.begin(), v.end(), 3);          // 使用 erase() 函数删除“新”结束位置之前的元素     v.erase(new_end, v.end());          // 输出处理后的向量     for (int x : v) {         std::cout<< x << " ";     }          return 0; } 

输出结果:

1 2 4 5 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!