std::erase
是一个 C++ 标准库 (STL) 中的容器操作函数,它用于从容器中删除元素。该函数接收两个参数:一个指向容器起始位置的迭代器,以及一个需要被删除的元素的值。通过对比迭代器指向的元素和给定值的类型,如果它们相同,该函数就删除该元素;如果它们不同,该函数就跳过该元素,继续迭代。
下面是 std::erase
的详细说明:
函数原型:
template<class Container, class T>
void erase(Container& container, const T& value);
参数:
container
:一个指向容器的引用,需要被删除元素的容器。value
:一个需要被删除的元素值。功能:
从容器中删除具有给定值的元素。
示例:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 删除一个元素
vec.erase(vec.begin());
std::cout << "Vector after removing the first element: ";
for (int i : vec) {
std::cout << i << " ";
}
std::cout << std::endl;
// 删除一个范围内的元素
std::vector<int> vec2 = {10, 20, 30, 40, 50};
vec2.erase(vec2.begin() + 2, vec2.end());
std::cout << "Vector after removing elements at index 2 to the end: ";
for (int i : vec2) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
以上代码中,我们先创建了一个包含 1 到 5 的整数的向量(vec
),然后使用 std::erase
函数删除第一个元素(即索引为 0 的元素,值为 1)。结果输出为:Vector after removing the first element: 2 3 4 5
。
接下来,我们创建了一个包含 10 到 50 的整数的向量(vec2
),并使用 std::erase
函数删除索引为 2 到最后一个元素(即索引为 4 的元素,值为 40)。结果输出为:Vector after removing elements at index 2 to the end: 10 20 30 40
。
领取专属 10元无门槛券
手把手带您无忧上云