c++中vector如何删除元素
时间: 2023-09-22 15:10:36 浏览: 184
在C++中,可以使用vector的erase()函数来删除元素。erase()函数有两种用法:
1. 删除指定位置的元素:可以通过传递迭代器参数来指定要删除的元素位置。例如,要删除vector中的第三个元素,可以使用以下代码:
```cpp
std::vector<int> vec {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除第三个元素
```
2. 删除指定值的元素:可以通过传递要删除的元素的值作为参数来删除该值的所有元素。例如,要删除vector中的所有值为3的元素,可以使用以下代码:
```cpp
std::vector<int> vec {1, 2, 3, 4, 3, 5};
vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除所有值为3的元素
```
在第二种用法中,先使用std::remove()算法将要删除的元素移到vector的末尾,然后再使用erase()函数删除它们。
这些是删除vector中元素的常见方法,希望能对你有帮助!如果你有任何其他问题,请随时提问。
相关问题
c++中vector删除元素
在C++中,可以使用vector的erase()函数来删除元素。erase()函数接受一个迭代器参数,指定要删除的元素位置。以下是删除vector中元素的几种常见方法:
1. 删除指定位置的元素:
```cpp
vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除第3个元素,即数字3
```
2. 删除指定值的元素:
```cpp
vector<int> vec = {1, 2, 3, 4, 5};
auto it = find(vec.begin(), vec.end(), 3); // 查找值为3的元素
if (it != vec.end()) {
vec.erase(it); // 删除值为3的元素
}
```
3. 删除一定范围内的元素:
```cpp
vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 1, vec.begin() + 4); // 删除第2个到第4个元素,即数字2、3、4
```
需要注意的是,在使用erase()函数删除元素后,vector的大小会自动调整。
c++ 里vector删除元素
在 C++ 中,可以使用 vector 的 erase() 函数来删除元素。erase() 函数接受一个迭代器参数,指向要删除的元素。例如,删除 vector v 中的第 i 个元素,可以使用以下代码:
```
v.erase(v.begin() + i);
```
其中,v.begin() 返回一个指向 vector 开头的迭代器,加上 i 就是指向第 i 个元素的迭代器。
如果要删除多个元素,可以使用 erase() 函数的另一个重载版本,该版本接受两个迭代器参数,指定要删除的元素范围。例如,删除 vector v 中从第 i 个元素到第 j 个元素(不包括第 j 个元素),可以使用以下代码:
```
v.erase(v.begin() + i, v.begin() + j);
```