C++ vector删除操作
时间: 2023-08-24 16:06:49 浏览: 48
C++ vector的删除操作有多种方式。其中一种是使用erase函数。该函数可以接受一个迭代器作为参数,用于指定要删除的元素的位置。例如,使用`vector.erase(iterator)`可以删除指定位置的元素。 该函数还支持一个重载版本,可以指定一个范围来删除一段连续的元素,范围是左闭右开的。例如,使用`vector.erase(first, last)`可以删除[first, last)范围内的元素。 这个范围是以迭代器表示的。 << ' ';
}
std::cout << std::endl;
return 0;
}
```
运行以上代码,将会输出删除操作后的vector元素:4 5 6 7 8 9 10。 [3]
另一种删除vector元素的方法是使用算法库中的remove_if函数结合erase函数。remove_if函数接受一个谓词(即函数返回值为bool类型的函数),用于判断元素是否需要被删除。然后,通过erase函数删除不满足条件的元素。下面是一个使用remove_if和erase函数删除vector元素的示例代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> vec{ 1, 1, 2, 3, 4, 5, 6 };
auto removeNumbers = [&](int number) -> bool {
return number < 3;
};
auto iterator = std::remove_if(vec.begin(), vec.end(), removeNumbers);
vec.erase(iterator, vec.end());
std::for_each(vec.begin(), vec.end(), [](int i) {
std::cout << i << ' ';
});
return 0;
}
```
运行以上代码,将会输出删除操作后的vector元素:3 4 5 6。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++ vector容器删除操作](https://blog.csdn.net/digitalkee/article/details/106979841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [C++ vector的操作](https://blog.csdn.net/flyfish1986/article/details/124107056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [C++ vector之删除元素](https://blog.csdn.net/qq_36770641/article/details/89355657)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]