温馨提示×

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

c++
小樊
89
2024-09-25 05:45:30
栏目: 编程语言

在 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

0