std::vector 删除元素操作
时间: 2025-05-30 18:03:52 浏览: 16
### 如何在 C++ 中使用 `std::vector` 删除元素
在 C++ 的标准库中,`std::vector` 提供了多种方法来删除其中的元素。以下是几种常见的删除方式及其对应的示例代码。
#### 1. 使用 `pop_back()` 删除最后一个元素
如果只需要移除 `std::vector` 容器中的最后一个元素,则可以直接调用成员函数 `pop_back()`[^1]。此操作会减少容器的大小并销毁最后的一个元素。
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3};
// 删除最后一个元素
vec.pop_back();
for (auto elem : vec) {
std::cout << elem << " ";
}
return 0;
}
```
#### 2. 使用 `erase(iterator)` 删除指定位置的单个元素
通过迭代器定位到目标元素的位置后,可以调用 `erase()` 成员函数将其从容器中移除[^1]。注意,该操作会使后续元素向前移动一位以填补空缺。
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4};
// 删除第二个元素(索引为1)
vec.erase(vec.begin() + 1);
for (auto elem : vec) {
std::cout << elem << " ";
}
return 0;
}
```
#### 3. 使用 `erase(first_iterator, last_iterator)` 删除一段范围内的多个连续元素
当需要一次性清除某个区间内的所有项目时,可利用重载版本的 `erase()` 函数传入起始与终止两个迭代器参数实现批量处理功能[^1]。
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 删除第2至第4个元素(索引为1~3)
vec.erase(vec.begin()+1, vec.begin()+4);
for(auto elem : vec){
std::cout<<elem<<" ";
}
return 0;
}
```
#### 4. 清空整个 `std::vector`
若想彻底清空一个向量对象内部存储的所有数据项而保留原有空间容量不变的话,那么应该采用的是 clear 方法而不是 resize 或者 assign 等其他手段[^1]。
```cpp
#include <iostream>
#include <vector>
int main(){
std::vector<int>vec={1,2,3};
//完全清理掉所有的内容
vec.clear();
if(vec.empty()){
std::cout<<"The vector is now empty."<<std::endl;
}
return 0;
}
```
以上就是关于如何在C++程序里运用不同的技术去管理以及操纵属于动态数组类型的STL组件——即标准模板库里的矢量类的一些基本技巧介绍[^1]。
阅读全文
相关推荐


















