c++中vector如何删除元素_c++ vector容器元素删除方法

答案:C++中vector删除元素主要用erase()和pop_back();erase()可删单个或区间元素,pop_back()删末尾元素,结合remove与erase可实现条件删除,需注意迭代器失效问题。

c++中vector如何删除元素_c++ vector容器元素删除方法

在C++中,vector 删除元素主要通过 erase()pop_back() 方法实现。根据删除位置和数量的不同,选择合适的方法可以提高代码效率和可读性。

使用 erase() 删除指定位置或范围的元素

erase() 是 vector 中最常用的删除方法,可用于删除单个元素或一段区间内的多个元素。

• 删除单个元素:传入要删除元素的迭代器
• 删除一个范围:传入起始和结束迭代器
• 注意:erase() 会改变容器大小,且被删除位置之后的元素会前移

示例:

c++中vector如何删除元素_c++ vector容器元素删除方法

小艺

华为公司推出的AI智能助手

c++中vector如何删除元素_c++ vector容器元素删除方法124

查看详情 c++中vector如何删除元素_c++ vector容器元素删除方法

 #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 的最后一个元素,不返回值,仅修改容器。

立即学习C++免费学习笔记(深入)”;

• 时间复杂度为 O(1)
• 调用前应确保容器非空,否则行为未定义

示例:

c++中vector如何删除元素_c++ vector容器元素删除方法

小艺

华为公司推出的AI智能助手

c++中vector如何删除元素_c++ vector容器元素删除方法124

查看详情 c++中vector如何删除元素_c++ vector容器元素删除方法

 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() 后,指向被删元素及之后位置的迭代器将失效,需谨慎处理循环中的迭代器更新。

相关标签:

ai c++ ios 循环

上一篇
下一篇