21xrx.com
2025-03-27 10:24:43 Thursday
文章检索 我的文章 写文章
C++中erase函数的用法
2023-06-30 09:14:57 深夜i     89     0
C++ erase函数 用法

在C++中,erase函数是一个非常有用的函数,它可以从容器中删除指定位置的元素。erase函数可以用于各种容器类型,如vector、list、set和map等。

基本用法:

erase函数的基本用法是:第一个参数是要删除元素的位置,第二个参数是要删除的元素数量。例如:

vector myvec5;

myvec.erase(myvec.begin() + 3); //删除第4个元素

//现在myvec = 2

这个例子中,erase函数删除了myvec中第4个元素,即数字4。注意,链表(list)和set/map等容器都有自己的erase函数用法,但其基本用法与vector相同。

用迭代器和区间删除元素:

除了删除指定位置的元素外,erase函数还可以用迭代器和区间删除元素。例如:

vector myvec1;

myvec.erase(myvec.begin()+2,myvec.end()-1);

//删除第3个至倒数第2个元素,现在myvec = 5

注意,区间删除元素时,第二个参数要减一,否则会把最后一个元素也删除。

删除符合条件的元素:

erase函数还可以根据条件删除容器中的元素。可以使用STL算法中的remove_if函数来找到符合条件的元素,并在erase函数中使用。例如:

vector myvec3;

myvec.erase(remove_if(myvec.begin(), myvec.end(), [](int x)

  return x%2 == 0; //删除偶数元素

), myvec.end());

//现在myvec = 1

在这个例子中,remove_if函数返回一个指向被删除元素的迭代器,然后erase函数根据该迭代器删除这些元素。注意,remove_if函数要求一个可调用对象(这里使用了一个lambda函数),用于指定删除的条件。

总结:

总之,erase函数是一个非常有用的函数,可以用于删除容器中特定位置的元素,以及根据条件删除元素。掌握了erase函数的使用,可以更方便地操作容器,使程序变得更加高效。

  
  

评论区