c++vector.erase
时间: 2023-10-24 22:09:41 浏览: 36
在C++中,vector的erase函数用于从vector中删除指定位置的一个或多个元素。它有两种常见的使用方式。首先,可以通过传递一个迭代器来删除单个元素。例如,可以使用以下代码删除vector中第三个元素:
vector<int> array;
array.erase(array.begin() + 2);
在这个例子中,array.begin()返回vector的起始迭代器,而+2表示移动两个位置,即到达第三个元素的位置。然后,erase函数将删除第三个元素。
第二种使用方式是通过指定一个范围来删除多个元素。例如,可以使用以下代码删除vector中所有等于300的元素:
vector<int> array;
// 向array中添加元素
vector<int>::iterator itor;
for (itor = array.begin(); itor != array.end(); ) {
if (*itor == 300) {
itor = array.erase(itor);
}
else {
++itor;
}
}
在这个例子中,我们使用迭代器遍历vector中的所有元素。如果元素的值等于300,我们使用erase函数删除该元素,并让迭代器指向下一个元素;否则,我们只需将迭代器自增1。这样做的原因是,erase函数会返回指向被删除元素之后位置的迭代器,因此我们需要更新迭代器的值。
最后,我们可以使用循环遍历vector并打印剩余的元素:
for (itor = array.begin(); itor != array.end(); ++itor) {
cout << *itor << " ";
}
这样就可以将剩余的元素输出到控制台上了。
综上所述,vector的erase函数可以通过传递一个迭代器来删除单个元素,也可以通过指定一个范围来删除多个元素。在删除多个元素时,需要注意更新迭代器的值。