vector.erase()之后的size()
时间: 2023-11-11 17:06:48 浏览: 306
vector与map的erase()函数详细解析
在使用 `vector.erase()` 删除元素后,`vector` 的 `size()` 会减小,因为元素已经被删除了。具体来说,如果删除单个元素,则 `size()` 会减 1;如果删除多个元素,则 `size()` 会减去删除元素的个数。
例如,如果有一个 `vector<int> v`,初始时包含 5 个元素,且要删除第 2 个元素,则可以使用以下代码:
```c++
vector<int>::iterator it = v.begin() + 1; // 获取第 2 个元素的迭代器
v.erase(it); // 删除第 2 个元素
cout << v.size() << endl; // 输出 4
```
在上述代码中,`v.size()` 在删除元素后为 4。
需要注意的是,如果在删除元素时使用了迭代器,则删除元素后迭代器会失效,因此需要重新获取迭代器。如果在删除元素后继续使用失效的迭代器,则会导致不可预期的行为。
阅读全文