21xrx.com
2024-06-02 23:02:51 Sunday
登录
文章检索 我的文章 写文章
C++ vector 移除元素
2023-07-09 05:43:40 深夜i     --     --
C++ vector 移除 元素 erase

在C++的STL中,vector是一种非常常用的容器,它能够保存多个同类型的元素,并允许动态地在其中添加或删除元素。然而,在某些情况下,我们需要对vector中的元素进行移除操作。本文将介绍如何使用C++ vector来移除元素。

在C++中,将vector中的元素移除操作通常有两种方法:使用erase函数和使用remove函数。erase函数可以直接删除指定位置上的元素,而remove函数则需要先将需要移除的元素移到vector的末尾,再使用erase函数将其删除。接下来,我们将分别介绍这两种方法。

1. 使用erase函数

使用erase函数来删除vector中的元素非常简单,代码如下:


vector<int> vec = 5;

vec.erase(vec.begin() + 2); // 删除第三个元素

其中,vec.begin() + 2表示需要删除的元素在vector中的位置,由于vector的下标从0开始计数,所以此处删除的是第三个元素。如果想要删除多个元素,可以在循环中使用erase函数,注意每次删除后vector长度会变化,需要调整下标。

2. 使用remove函数

使用remove函数来删除vector中的元素比erase略有些麻烦,需要先将需要删除的元素移到vector的末尾,再使用erase函数将其删除。具体代码如下:


vector<int> vec = 2;

vec.erase(std::remove(vec.begin(), vec.end(), 3), vec.end()); // 删除值为3的元素

其中,std::remove处理的是整个vector,将所有值为3的元素移动到vector的末尾,然后erase函数会将末尾的元素删除。如果想要删除多个元素,也可以在循环中使用remove函数。

总结

使用C++的vector来移除元素非常简单,可以使用erase函数,也可以使用remove函数。如果只需要移除一个元素,建议使用erase函数;如果需要移除多个元素,可以先使用remove函数,再使用erase函数。需要注意的是,每次删除元素后vector长度都会发生变化,可能会影响后续的循环操作,需要做好下标的调整。

  
  

评论区

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