c++ 里vector删除元素
时间: 2023-10-25 09:07:41 浏览: 61
在 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);
```
相关问题
c++里的vector删除元素
删除C++中的vector容器中的元素有多种方式。一种方式是使用clear()成员函数,此函数可以删除容器中的所有元素,并将容器的大小设置为0。另一种方式是使用pop_back()函数,该函数可以删除容器中的最后一个元素。还可以使用erase(pos)函数删除容器中指定位置的元素,其中pos是一个迭代器。另外,可以使用erase(beg, end)函数删除容器中指定范围的元素,其中beg和end是迭代器,表示要删除的元素范围的起始和结束位置。此外,还可以使用swap()函数和pop_back()函数结合使用,先交换要删除的目标元素和容器中最后一个元素的位置,然后再使用pop_back()函数删除该目标元素。最后,可以使用remove()函数删除容器中所有与指定元素值相等的元素。
示例代码:
```
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<int> demo{ 1,2,3,4,5 };
demo.pop_back(); // 使用pop_back()删除最后一个元素
// 输出demo容器的新大小
cout << "size is :" << demo.size() << endl;
// 输出demo容器的新容量
cout << "capacity is :" << demo.capacity() << endl;
// 输出demo容器中剩余的元素
for (int i = 0; i < demo.size(); i++) {
cout << demo[i] << " ";
}
return 0;
}
```
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的大小会自动调整。