stl vector 删除元素
时间: 2023-09-27 10:05:07 浏览: 125
要删除 STL vector 中的元素,可以使用 `erase` 函数。`erase` 函数接受一个迭代器参数,指定要删除的元素位置。
下面是一个示例代码,演示如何删除 vector 中的元素:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 删除元素 3
for (auto it = vec.begin(); it != vec.end(); ++it) {
if (*it == 3) {
vec.erase(it);
break; // 因为 vector 中可能有重复元素,所以删除后需要跳出循环
}
}
// 打印 vector 中的元素
for (const auto& element : vec) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
```
在上面的示例中,通过迭代 vector 来查找要删除的元素(这里是值为 3 的元素),然后使用 `erase` 函数将其删除。注意,循环中的 `break` 语句是必需的,因为一旦删除元素后,迭代器会失效。
请注意,也可以使用 `std::remove` 函数结合 `erase` 函数来删除 vector 中的元素,这种方法更简洁。例如:
```cpp
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end());
```
这行代码将删除 vector 中所有值为 3 的元素。
希望能帮到你!如果有更多问题,请随时问。
阅读全文