C++ vector的删除操作
时间: 2024-09-26 19:00:55 浏览: 45
C++ 中Vector常用基本操作
在C++中,`vector`是一种动态数组,它的插入、删除操作都非常高效。以下是关于删除操作的一些基本信息:
1. **erase()函数**:
- `vector::erase()`是一个成员函数,用于从容器中移除指定位置的元素。有两种形式:
- `erase(iterator)`:移除从`iterator`开始到`end()`的区间的所有元素。
- `erase(iterator, iterator)`:移除从第一个迭代器`begin()`直到第二个迭代器的元素。
示例:
```cpp
std::vector<int> vec {1, 2, 3, 4, 5};
vec.erase(vec.begin()); // 删除第一个元素
```
2. **pop_back()** 和 **pop_front()**:
- `pop_back()` 只会移除最后一个元素。
- `pop_front()` 只会移除第一个元素(对于自增序排列的容器)。
3. **clear()**:
- 如果你需要清空整个`vector`,可以使用`clear()`方法,它会删除所有元素并将空间回收。
```cpp
vec.clear(); // 清空所有元素
```
4. **resize()**:
- 如果你只想改变`vector`的大小而不是删除元素,可以使用`resize(size_type new_size)`方法。如果新大小小于当前大小,会删除多余的部分;反之则会填充默认值。
在删除操作之后,由于内存管理的特性,可能会引起内部数据的重新布局。尽量避免在循环体内频繁删除元素,除非你知道这是必要的,因为每次删除都可能导致后面的元素移动。
阅读全文