📅  最后修改于: 2023-12-03 14:51:14.788000             🧑  作者: Mango
remove()
函数是 C++ STL 中的一个算法函数,位于 <algorithm>
头文件中。它用于从容器中(如 vector
或 list
)移除某个指定值的所有元素,并返回一个迭代器,指向第一个被移除元素的位置。
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()
函数。