std::vector remove
时间: 2023-07-04 21:24:37 浏览: 129
go_vector是基于C ++ std :: Vector的容器数据结构。 go_vector带来了功能编程,并删除了样板代码。-Golang开发
`std::vector` 类提供了 `erase` 方法用于移除一个或多个元素。它接受一个迭代器参数,这个迭代器指向待移除元素的位置,然后将这个元素和之后的所有元素向前移动一个位置。`erase` 方法返回指向下一个元素的迭代器,如果移除的是最后一个元素,则返回 `end()` 迭代器。
如果您只需要移除一个元素,可以使用 `std::vector::erase` 方法和一个迭代器,如下所示:
```cpp
std::vector<int> vec{1, 2, 3, 4, 5};
auto it = vec.begin() + 2; // 移除第三个元素
vec.erase(it);
```
如果您需要移除多个元素,可以结合使用 `std::remove` 算法和 `std::vector::erase` 方法,如下所示:
```cpp
std::vector<int> vec{1, 2, 3, 4, 5};
auto it = std::remove(vec.begin(), vec.end(), 3); // 移除所有值为 3 的元素
vec.erase(it, vec.end()); // 移除所有被 remove 移动到末尾的元素
```
在上面的示例中,`std::remove` 算法将所有值为 3 的元素移动到了向量的末尾。然后,使用 `std::vector::erase` 方法将这些被移动到末尾的元素彻底移除。
阅读全文