学堂 学堂 学堂公众号手机端

在C++中,erase()函数用于从容器中删除一个或多个元素。 erase()函数有多种用法

lewis 1年前 (2024-04-16) 阅读数 13 #技术

在C++中,erase()函数用于从容器中删除一个或多个元素。

erase()函数有多种用法:

  1. 删除单个元素:通过指定要删除的元素的位置或迭代器,可以使用erase()函数删除单个元素。


    例如,对于向量(vector)容器,可以使用以下代码删除位置为i的元素:

    vector<int>myVector={1,2,3,4,5}; myVector.erase(myVector.begin()+i);

    或者,可以使用迭代器删除元素:

    vector<int>::iteratorit=myVector.begin()+i; myVector.erase(it);
  2. 删除范围内的元素:通过指定要删除的元素的范围,可以使用erase()函数删除一个范围内的元素。

    例如,对于向量(vector)容器,可以使用以下代码删除位置从i到j的元素:

    vector<int>myVector={1,2,3,4,5}; myVector.erase(myVector.begin()+i,myVector.begin()+j+1);

    或者,可以使用迭代器删除范围内的元素:

    vector<int>::iteratorstart=myVector.begin()+i; vector<int>::iteratorend=myVector.begin()+j+1; myVector.erase(start,end);
  3. 删除满足条件的元素:通过使用谓词,可以使用erase()函数删除满足某个条件的元素。

    例如,对于向量(vector)容器,可以使用以下代码删除所有等于特定值的元素:

    vector<int>myVector={1,2,3,4,5}; intvalue=3; myVector.erase(std::remove(myVector.begin(),myVector.end(),value),myVector.end());

    在上述代码中,std::remove()函数会将等于特定值的元素移到容器的末尾,然后erase()函数将这些元素删除。

需要注意的是,erase()函数只适用于能够使用迭代器访问的容器,如向量(vector),链表(list),集合(set)等。对于关联容器,如映射(map)和哈希表(unordered_map),需要使用特定的删除函数,如erase()或erase_if()。

版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门