c++vector容器erase的用法
时间: 2024-01-01 10:23:39 浏览: 312
c++中的vector容器提供了erase()函数来删除容器中的元素。erase()函数有多种用法,可以删除指定位置的元素,也可以删除指定范围内的元素。
以下是erase()函数的用法示例:
1. 删除指定位置的元素:
```c++
vector<int> v5 = {1, 2, 3, 4, 5};
v5.erase(v5.begin()); // 删除头部元素
```
2. 删除指定范围内的元素:
```c++
vector<int> v5 = {1, 2, 3, 4, 5};
v5.erase(v5.begin(), v5.end()-1); // 删除除最后一个元素外的所有元素
```
注意:在删除指定范围内的元素时,需要将end()迭代器减去1,以指向最后一个元素。
3. 遍历vector并计算元素的总和:
```c++
vector<int> v5 = {1, 2, 3, 4, 5};
int sum = 0;
for(vector<int>::iterator it = v5.begin(); it != v5.end(); it++){
sum += (*it);
}
cout << sum << endl; // 输出:15
```
相关问题
vector容器erase的用法
`std::vector` 是 C++ 标准库中的一个动态数组容器,提供了一种方便的方式来存储和操作一系列元素。`erase` 函数是 `vector` 类中的一个成员函数,用于删除指定位置或范围的元素。
`erase` 函数的常用用法有以下几种:
1. 删除单个元素:当你知道要删除的具体元素索引时,可以直接传递该索引来 `erase`,例如:
```cpp
std::vector<int> v = {1, 2, 3, 4, 5};
v.erase(v.begin() + 2); // 删除第三个元素,此时 v 为 {1, 2, 4, 5}
```
这里的 `v.begin()` 返回向量的起始迭代器,加上特定索引后得到要删除元素的迭代器。
2. 删除连续元素:如果你要删除一个区间内的所有元素,可以传递两个迭代器,分别表示区间的开始和结束:
```cpp
std::vector<int> v = {1, 2, 3, 4, 5, 6};
v.erase(v.begin() + 1, v.begin() + 4); // 删除从第二个到第四个元素,此时 v 为 {1, 5, 6}
```
这里第一个参数是删除区间的起始位置,第二个参数是删除区间的结束位置(不包含该位置对应的元素)。
3. 使用迭代器:如果你有一个指向要删除元素的迭代器,可以使用 `std::next` 或者直接传递给 `erase` 函数:
```cpp
int* p = &v; // 指向第三个元素
v.erase(p); // 删除指向的元素
```
C++ vector容器的用法
C++中的vector是一个动态数组容器,可以在运行时动态地添加和删除元素。以下是vector的基本用法:
1. 头文件引入:
```c++
#include <vector>
```
2. 创建vector对象:
```c++
vector<int> v; // 创建一个int类型的空vector
vector<string> v2(10); // 创建一个包含10个空字符串的vector
```
3. 添加元素:
```c++
v.push_back(1); // 在vector尾部添加一个元素1
v.insert(v.begin(), 2); // 在vector头部添加一个元素2
v.insert(v.begin() + 1, 3); // 在vector第二个元素后面添加一个元素3
```
4. 访问元素:
```c++
cout << v[0] << endl; // 访问第一个元素
cout << v.at(1) << endl; // 访问第二个元素
```
5. 删除元素:
```c++
v.pop_back(); // 删除vector尾部的元素
v.erase(v.begin() + 1); // 删除vector第二个元素
```
6. vector的属性:
```c++
cout << v.size() << endl; // 返回vector中元素的数量
cout << v.empty() << endl; // 如果vector为空,则返回true,否则返回false
```
以上是vector的基本用法,还有更多高级用法可以参考C++官方文档或其他相关资料。
阅读全文
相关推荐













