21xrx.com
2025-02-16 22:11:12 Sunday
登录
文章检索 我的文章 写文章
C++中的vector erase()函数介绍及用法详解
2023-07-04 12:48:26 深夜i     --     --
C++ vector erase() 用法 详解

在C++中,vector是一个非常常用的数据结构,它是一个动态数组,可以动态的插入、删除元素。在使用vector时,经常会用到erase()函数来删除其中的某个元素或一段元素。本篇文章就是要针对vector中的erase()函数做一个详细的介绍及用法解析。

一、erase()函数的基本介绍

vector中的erase()函数是用来删除元素的,其函数原型如下:


iterator erase(iterator position);

iterator erase(iterator first, iterator last);

其中,第一个参数是迭代器,表示要删除元素的位置;第二个参数也是迭代器,表示要删除元素的范围。这两个参数都是可以省略的,当只传入一个参数时,表示删除指定位置的元素;传入两个参数时,表示删除指定范围内的元素。erase()函数返回的是一个迭代器,指向被删除元素之后的元素。

需要注意的是,在使用erase()函数删除元素时,vector中的所有元素会被向前移动,所以区间在操作过程中会被改变。

二、erase()函数的常用用法

下面给出一些使用erase()函数的常用用法。

1. 删除单个元素

删除单个元素时,只需要传入一个迭代器,指向要删除的元素即可。


vector<int> v = 1;

v.erase(v.begin() + 2);

上述代码中,v.begin() + 2定位到vector中第三个元素,然后通过erase()函数将其删除,最终v变成1。

2. 删除一段元素

删除一段元素时,需要传入两个迭代器,表示要删除的范围。


vector<int> v = 4;

v.erase(v.begin() + 1, v.begin() + 3);

上述代码中,v.begin() + 1 定位到vector中第二个元素,v.begin() + 3 定位到vector中第四个元素,然后通过erase()函数将指定范围内的元素删除,最终v变成 4。

3. 按条件删除元素

可以利用erase()函数按照某种条件删除元素,这时需要结合迭代器和循环来实现。例如,下面的代码可以删除vector中所有偶数元素:


vector<int> v = 1;

for (vector<int>::iterator it = v.begin(); it != v.end();) {

  if (*it % 2 == 0)

    it = v.erase(it);

  else

    ++it;

}

在这个例子中,通过迭代器循环遍历vector中的所有元素,当遇到偶数的元素时,使用erase()函数删掉当前迭代器指向的元素,并返回指向下一个元素的迭代器,如果是奇数的元素,就将迭代器指针向后移动一个单位。

三、总结

通过本篇文章的介绍,我们了解了vector中的erase()函数的基本用法和常用技巧,能够更加熟练的使用这个函数对vector进行元素的删除操作。当然,除了erase()函数之外,在vector中还有很多其他的函数也非常有用,大家可以根据需要适当的学习和使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复