21xrx.com
2024-11-05 16:37:34 Tuesday
登录
文章检索 我的文章 写文章
C++ Vector Erase函数的详解
2023-07-12 20:45:15 深夜i     --     --
C++ Vector Erase函数 详解

C++中的Vector是一种动态数组,可以随时在其中添加或删除元素。其中,Vector的Erase函数可以用于删除指定位置的元素,或是删除一定范围内的一些元素。

使用Erase函数时,需要传入一个Iterator,该Iterator指向要删除元素的位置。此外,还可以传入一个另一个Iterator,该Iterator指向要删除的结束位置,实现删除一定范围内的元素。

下面介绍Erase函数的具体使用方法及其注意事项。

1. 删除单个元素

使用Erase函数删除单个元素的代码示例如下:


std::vector<int> v = 4;

v.erase(v.begin() + 2); // 删除第3个元素,即3

上述代码中,我们通过`v.begin() + 2`指向了Vector中的第3个元素(从0开始计数),然后调用Erase函数来删除该元素。此后,Vector中的元素变成了 2。

需要注意的是,当删除单个元素时,我们只需要传入一个Iterator,该Iterator指向要删除的元素位置。

2. 删除一定范围内的元素

想删除一定范围内的元素时,需要用到两个Iterator,分别指向要删除的起始位置和结束位置。调用Erase函数后,起始位置到结束位置中的所有元素都会被删除。

具体代码示例如下:


std::vector<int> v = 1;

v.erase(v.begin() + 1, v.begin() + 4); // 删除第2个到第4个元素,即 3

上述代码中,我们通过`v.begin() + 1`和`v.begin() + 4`指向了Vector中的第2个到第4个元素,然后调用Erase函数来删除该范围内的元素。此后,Vector中的元素变成了1。

需要注意的是,删除一定范围内的元素时,我们需要传入两个Iterator,分别指向要删除的起始位置和结束位置。

3. 删除所有元素

如果想要删除Vector中的所有元素,可以直接调用Erase函数,并将起始位置和结束位置都设置为Vector的begin()和end()。

具体代码示例如下:


std::vector<int> v = 5;

v.erase(v.begin(), v.end()); // 删除所有元素

上述代码中,我们通过`v.begin()`和`v.end()`指向Vector的起始位置和结束位置,然后调用Erase函数来删除所有元素。此后,Vector中的元素为空。

需要注意的是,删除所有元素时,我们需要同时传入起始位置和结束位置,即`v.erase(v.begin(), v.end())`。

总结:

C++中的Vector是一种非常常用的容器。其中,Erase函数可以用于删除Vector中的元素,包括单个元素和一定范围内的多个元素。在使用Erase函数时,需要注意传入的Iterator指向的是要删除的元素的位置,呈现出极高的删除效率和较为便捷的调用方式,是C++容器操作的一大福音。

  
  

评论区

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