vector erase的用法
时间: 2023-10-23 09:46:21 浏览: 46
好的,关于 vector erase 的用法,它可以用于删除 vector 容器中的一个或多个元素,其函数原型如下:
iterator erase (iterator position);
iterator erase (iterator first, iterator last);
第一个函数用于删除指定位置的元素,第二个函数用于删除指定范围内的所有元素。需要注意的是,删除操作后,原来的迭代器可能已经失效,因此需要重新获取迭代器才能继续访问容器中的元素。同时,删除元素并不会改变容器的大小,需要通过调用 resize() 函数来改变大小。希望能解答您的疑问,谢谢!
相关问题
vector erase用法
vector::erase() 是 C++ 中 std::vector 的成员函数,用于从 vector 中删除一个或多个元素。它有几种不同的用法:
1. 删除单个元素:
```cpp
iterator erase(iterator position);
```
这个函数接受一个迭代器参数 position,表示要删除的元素的位置。它返回一个指向被删除元素之后位置的迭代器。
例如:
```cpp
std::vector<int> nums = {1, 2, 3, 4, 5};
nums.erase(nums.begin() + 2); // 删除第三个元素
// 现在 nums = {1, 2, 4, 5}
```
2. 删除一个范围内的元素:
```cpp
iterator erase(iterator first, iterator last);
```
这个函数接受两个迭代器参数,表示要删除的范围 [first, last)。它返回一个指向被删除元素之后位置的迭代器。
例如:
```cpp
std::vector<int> nums = {1, 2, 3, 4, 5};
nums.erase(nums.begin() + 1, nums.begin() + 4); // 删除第二到第四个元素
// 现在 nums = {1, 5}
```
需要注意的是,erase() 函数会使得迭代器失效,因此在使用 erase() 后要小心处理迭代器的使用。
c++ vector erase用法大全
C++中的vector容器提供了erase()方法来删除元素。下面是一些c++ vector erase用法的示例:
1. 删除指定位置的元素[^1]:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除索引为2的元素
```
2. 删除指定范围的元素:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 1, vec.begin() + 4); // 删除索引为1到3的元素
```
3. 删除满足条件的元素[^2]:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除所有值为3的元素
```
4. 删除满足条件的元素并返回删除的元素个数:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
int count = std::count(vec.begin(), vec.end(), 3);
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除所有值为3的元素
```
这些是一些常见的c++ vector erase用法。你可以根据具体的需求选择适合的方法来删除vector中的元素。