📜  在C++ STL中列出remove()函数(1)

📅  最后修改于: 2023-12-03 14:51:14.788000             🧑  作者: Mango

在C++ STL中列出remove()函数

函数介绍

remove() 函数是 C++ STL 中的一个算法函数,位于 <algorithm> 头文件中。它用于从容器中(如 vectorlist)移除某个指定值的所有元素,并返回一个迭代器,指向第一个被移除元素的位置。

函数原型

remove() 函数的原型如下:

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

其中:

  • ForwardIt:表示迭代器类型,可以是正向迭代器、随机访问迭代器等。
  • first:表示容器中第一个要移除元素的位置。
  • last:表示容器中最后一个要移除元素的下一个位置。
  • value:表示要移除的元素的值。
函数返回值

remove() 函数返回一个迭代器,指向第一个被移除元素的位置。

函数示例

以下是一个使用 remove() 函数移除 vector 容器中 5 这个元素的示例代码:

#include <algorithm>
#include <vector>
#include <iostream>

int main()
{
    std::vector<int> vec{1, 5, 2, 5, 3, 5, 4};
    vec.erase(std::remove(vec.begin(), vec.end(), 5), vec.end());
    for (int i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出结果为:

1 2 3 4
注意事项
  • remove() 函数并不会真正删除元素,而是将要删除的元素移动到容器的末尾,然后返回一个指向第一个被移动元素的迭代器。
  • 由于 remove() 函数并不会真正地删除元素,因此需要搭配 erase() 函数来删除移动到末尾的元素。
  • remove() 函数只能移除指定值的元素,无法移除符合某个条件的元素。如果需要移除符合某个条件的元素,可以使用 remove_if() 函数。