vector :: erase()函数,以及C ++ STL中的示例

C ++ vector :: erase()函数

vector :: erase()“ vector”头文件的库函数,用于擦除/删除向量中的元素,它可以从指定的迭代器位置删除一个元素,也可以删除一系列元素。

注意:要使用向量,请包含<vector>标头。

vector :: erase()函数的语法

    //删除一个元素
    vector::erase(iterator position);

    //删除一系列元素
    vector::erase(iterator start_position, iterator end_position);

参数:

如果要删除一个元素:position –是需要从中删除元素的迭代器位置。

在删除一系列元素的情况下:start_position,end_position –是需要从中删除元素的开始和结束迭代器位置。

返回值: iterator –返回一个迭代器,该迭代器指向元素,其后是vector :: erase()函数删除的最后一个元素。

示例

    Input:
    vector<int> v1{10, 20, 30, 40, 50};
    
    //删除一个元素
    v1.erase(v1.begin() + 2); //删除第二个索引元素

    //删除一系列元素
    v1.erase(v1.begin() + 1, v1.begin() + 3); //删除1,2个索引元素

    Output:
    //如果我们打印值
    v1: 10 50

C ++程序演示vector :: erase()函数的示例

//C ++ STL程序演示示例
//vector :: erase()函数

#include <iostream>
#include <vector>
using namespace std;

int main(){
    //向量声明
    vector<int> v1{ 10, 20, 30, 40, 50 };

    //打印元素
    cout << "v1: ";
    for (int x : v1)
        cout << x << " ";
    cout << endl;

    //删除一个元素
    v1.erase(v1.begin() + 2); //删除第二个索引元素

    //打印元素 after remove one element
    cout << "After removing one element..." << endl;
    cout << "v1: ";
    for (int x : v1)
        cout << x << " ";
    cout << endl;

    //删除一系列元素
    v1.erase(v1.begin() + 1, v1.begin() + 3); //删除1,2个索引元素

    //打印元素 after remove one element
    cout << "After removing a range of elements..." << endl;
    cout << "v1: ";
    for (int x : v1)
        cout << x << " ";
    cout << endl;

    return 0;
}

输出结果

v1: 10 20 30 40 50
After removing one element...
v1: 10 20 40 50
After removing a range of elements...
v1: 10 50

参考:C ++ vector :: erase()