c++ vecotr erase
时间: 2023-11-25 08:08:36 浏览: 38
C++ 的 vector 类型提供了 erase 成员函数用于删除 vector 中的元素。它的语法如下:
```c++
iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);
```
第一个函数用于删除 position 指向的元素,返回指向被删除元素后面的元素的迭代器。第二个函数用于删除 [first, last) 范围内的元素,返回指向被删除元素后面的元素的迭代器。
以下是一个示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5};
auto it = v.begin() + 2; // 指向第三个元素
v.erase(it); // 删除第三个元素
for (auto i : v) {
cout << i << " "; // 输出 1 2 4 5
}
cout << endl;
return 0;
}
```
注意,erase 函数会使得 vector 的迭代器失效,所以需要重新获取迭代器。
相关问题
c++ vector erase
在C++中,使用std::vector::erase()方法可以实际删除容器vector中的元素。 下面是一个示例代码,演示了如何使用erase()方法删除vector中的元素:
```cpp
#include <iostream>
#include <vector>
using namespace std;
#### 引用[.reference_title]
- *1* *2* *3* [c++ vector erase用法](https://blog.csdn.net/u013654125/article/details/77321081)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
C++ list erase
在 C++ 的 std::list 中,erase 函数用于删除容器中的一个或多个元素。它有两种重载形式:
```c++
iterator erase (const_iterator position);
iterator erase (const_iterator first, const_iterator last);
```
第一种形式删除迭代器 `position` 所指向的元素,并将其从列表中移除。返回指向删除元素后面的元素的迭代器,如果没有这样的元素,则返回 `end()`。
第二种形式删除从迭代器 `first` 所指向的元素到迭代器 `last` 所指向的元素之间的所有元素(不包括 `last` 所指向的元素),并将它们从列表中移除。返回指向 `last` 所指向的元素后面的元素的迭代器,如果没有这样的元素,则返回 `end()`。
以下是一个简单的示例代码,用于演示如何使用 `erase` 函数:
```c++
#include <iostream>
#include <list>
int main() {
std::list<int> mylist = {1, 2, 3, 4, 5};
// 删除元素 3
auto it = mylist.begin();
std::advance(it, 2); // advance 函数用于移动迭代器
mylist.erase(it);
// 删除元素 4 和 5
it = mylist.begin();
std::advance(it, 2);
mylist.erase(it, mylist.end());
// 输出剩余元素
for (auto& x : mylist) {
std::cout << x << " ";
}
return 0;
}
```
输出结果为:
```
1 2
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)