c++vector能删除元素吗
时间: 2024-02-01 09:11:07 浏览: 56
C++的vector容器提供了erase()函数来删除元素。erase()函数可以删除由一个iterator指出的元素,也可以删除一个指定范围的元素。删除元素后,容器的大小会相应地减小。需要注意的是,删除元素后,迭代器会失效,即不能再使用该迭代器操作向量。
以下是一个示例代码,演示了如何使用erase()函数删除vector中的元素:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec;
for(int i=0; i<10; i++) {
vec.push_back(i);
}
vec.erase(vec.begin()+5); // 删除第6个元素
vec.erase(vec.begin(), vec.begin()+3); // 删除前3个元素
for(int i=0; i<vec.size(); i++) {
cout << vec[i] << ' ';
}
cout << endl;
return 0;
}
```
运行以上代码,输出结果为:
```
3 4 6 7 8 9
```
相关问题
c++ vector插入删除元素
C++的vector容器提供了多种方法来插入和删除元素。首先,我们可以使用push_back()函数在尾部插入元素,使用pop_back()函数删除尾部的元素。另外,还可以使用insert()函数在指定位置插入元素,使用erase()函数删除指定位置的元素。以下是一些示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void printVector(vector<int>& v) {
for(vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
void testInsertAndDelete() {
vector<int> vec;
// 在尾部插入元素
vec.push_back(2);
vec.push_back(4);
vec.push_back(6);
vec.push_back(8);
vec.push_back(10);
printVector(vec);
// 在指定位置插入元素
vec.insert(vec.begin() + 1, 233);
printVector(vec);
// 在指定位置插入多个元素
vec.insert(vec.begin(), 3, 100);
printVector(vec);
// 删除指定位置的元素
vec.erase(vec.begin() + 2);
printVector(vec);
// 清空容器中的元素
vec.clear();
printVector(vec);
}
int main() {
testInsertAndDelete();
return 0;
}
```
c++ vector 删除元素
在C++中,vector是一个动态数组容器,可以方便地进行元素的插入、删除和访问操作。要删除vector中的元素,可以使用erase()函数或者使用pop_back()函数。
1. 使用erase()函数删除指定位置的元素:
vector提供了erase()函数,可以删除指定位置的元素。该函数接受一个迭代器参数,指向要删除的元素位置。删除后,后面的元素会自动向前移动填补空缺。
例如,要删除vector中的第三个元素,可以使用以下代码:
```
vector<int> vec = {1, 2, 3, 4, 5};
vec.erase(vec.begin() + 2); // 删除第三个元素
```
2. 使用pop_back()函数删除最后一个元素:
pop_back()函数用于删除vector中的最后一个元素。该函数不接受任何参数,直接将最后一个元素删除。
例如,要删除vector中的最后一个元素,可以使用以下代码:
```
vector<int> vec = {1, 2, 3, 4, 5};
vec.pop_back(); // 删除最后一个元素
```
需要注意的是,使用erase()函数删除元素时,要确保传入的迭代器指向有效的元素位置,否则可能会导致未定义行为。此外,删除元素后,vector的大小会相应减小。