remove和erase如何一起作用,举个例子
时间: 2023-11-08 12:05:50 浏览: 28
`remove()` 和 `erase()` 一起使用可以实现在容器中删除指定值的元素。`remove()` 函数将指定值的元素移到容器的末尾,然后使用 `erase()` 函数删除这些元素。
下面是一个使用 `remove()` 和 `erase()` 的例子,演示如何从 `std::vector` 中删除指定值的元素:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 删除所有偶数
numbers.erase(std::remove(numbers.begin(), numbers.end(), 2), numbers.end());
// 输出剩余的元素
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们有一个包含数字的 `std::vector`。我们使用 `std::remove()` 函数将所有值为2的元素移到容器的末尾。然后,使用 `erase()` 函数将这些值为2的元素从容器中删除。最后,我们输出剩余的元素,即删除了所有偶数之后的结果。
输出结果为:`1 3 4 5 6 7 8 9 10`
注意,`std::remove()` 函数只是将元素移到容器末尾,并没有实际删除元素,而 `erase()` 函数才是用于删除元素的。因此,我们需要将 `remove()` 和 `erase()` 结合使用,才能实现删除指定值的元素的功能。