c++vector容器erase的用法
时间: 2024-01-01 17:23:39 浏览: 126
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
```
相关问题
c++ vector erase用法大全
C++中的vector容器提供了erase()方法来删除元素。下面是一些c++ vector erase用法的示例:
1. 删除指定位置的元素[^1]:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除索引为2的元素
```
2. 删除指定范围的元素:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 1, vec.begin() + 4); // 删除索引为1到3的元素
```
3. 删除满足条件的元素[^2]:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除所有值为3的元素
```
4. 删除满足条件的元素并返回删除的元素个数:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
int count = std::count(vec.begin(), vec.end(), 3);
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除所有值为3的元素
```
这些是一些常见的c++ vector erase用法。你可以根据具体的需求选择适合的方法来删除vector中的元素。
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++官方文档或其他相关资料。