C++ vector 删除元素:使用迭代器高效操作
C++ vector 删除元素:使用迭代器
想要从 C++ vector 中删除特定元素?erase() 函数结合迭代器可以轻松实现!
代码示例:
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums = {10, 20, 30, 40, 50};
// 查找元素并删除
auto it = std::find(nums.begin(), nums.end(), 30);
if (it != nums.end()) {
nums.erase(it); // 删除迭代器指向的元素
std::cout << 'Element deleted' << std::endl;
} else {
std::cout << 'Element not found' << std::endl;
}
// 打印剩余元素
std::cout << 'Updated vector: ';
for (const auto& num : nums) {
std::cout << num << ' ';
}
std::cout << std::endl;
return 0;
}
代码解释:
- 查找目标元素:
- 使用
std::find(nums.begin(), nums.end(), 30)在 vectornums中查找值为 30 的元素。 std::find()返回一个迭代器,指向查找到的元素。
- 使用
- 删除元素:
- 如果
it不等于nums.end()(表示找到了元素),则使用nums.erase(it)删除迭代器it指向的元素。
- 如果
- 输出结果:
- 迭代打印
nums中剩余的元素。
- 迭代打印
重要提示:
- 调用
erase()后:- 被删除元素之后的元素会自动前移,填补空缺。
- vector 的大小会减 1。
希望本教程能帮助你理解如何使用迭代器从 C++ vector 中删除元素。 还有更多 C++ vector 操作技巧,敬请关注!
原文地址: https://www.cveoy.top/t/topic/Q4j 著作权归作者所有。请勿转载和采集!