
在C++中,vector 删除元素主要通过 erase() 和 pop_back() 方法实现。根据删除位置和数量的不同,选择合适的方法可以提高代码效率和可读性。
使用 erase() 删除指定位置或范围的元素erase() 是 vector 中最常用的删除方法,可用于删除单个元素或一段区间内的多个元素。
• 删除单个元素:传入要删除元素的迭代器• 删除一个范围:传入起始和结束迭代器
• 注意:erase() 会改变容器大小,且被删除位置之后的元素会前移
示例:
HyperWrite
AI写作助手帮助你创作内容更自信
54
查看详情
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> vec = {10, 20, 30, 40, 50};
// 删除第二个元素(值为20)
vec.erase(vec.begin() + 1);
// 删除从第2个到第4个元素(左闭右开)
vec.erase(vec.begin() + 1, vec.begin() + 3);
for (int n : vec) {
cout << n << " ";
}
return 0;
}
使用 pop_back() 删除最后一个元素
pop_back() 用于快速删除 vector 的最后一个元素,不返回值,仅修改容器。
• 时间复杂度为 O(1)• 调用前应确保容器非空,否则行为未定义
示例:
HyperWrite
AI写作助手帮助你创作内容更自信
54
查看详情
vec.pop_back(); // 移除末尾元素结合 remove() 和 erase() 实现条件删除(erase-remove 惯用法)
如果需要删除满足特定条件的所有元素(如所有值为 x 的元素),推荐使用 erase-remove 惯用法。
• 先用 remove() 将目标元素移到末尾• 再用 erase() 真正删除它们
示例:删除所有值为30的元素
vec.erase(remove(vec.begin(), vec.end(), 30), vec.end());
若使用谓词删除更复杂的条件(如所有偶数):
vec.erase(remove_if(vec.begin(), vec.end(), [](int n){ return n % 2 == 0; }), vec.end());
基本上就这些常用方式。注意迭代器失效问题:调用 erase() 后,指向被删元素及之后位置的迭代器将失效,需谨慎处理循环中的迭代器更新。以上就是c++++中vector如何删除元素_c++ vector容器元素删除方法的详细内容,更多请关注知识资源分享宝库其它相关文章!
相关标签: ai c++ ios 循环 大家都在看: 如何配置C++的AI推理框架环境 TensorRT加速库安装使用 C++与AI部署:ONNX Runtime集成全解析 c++中class的基本用法_c++类class基础入门教程 如何在C++中拼接两个字符串_C++字符串拼接高效方法 c++中如何动态分配内存_c++ new与delete内存管理方法






发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。