21xrx.com
2024-11-10 00:32:45 Sunday
登录
文章检索 我的文章 写文章
C++中使用vector的erase函数
2023-06-30 00:54:50 深夜i     --     --
C++ vector erase函数

C++中的vector是一种动态数组,它允许在其内部进行高效的元素访问和操作。在实际的开发中,我们常常需要对vector进行删除和插入操作,其中vector的erase函数是非常重要的一个函数,可以用来删除指定位置的元素。

vector的erase函数有两种形式,一种是删除单个元素,另一种是删除指定范围内的元素。下面分别介绍这两种用法。

1. 删除单个元素

如果要删除vector中的单个元素,可以使用erase函数的如下格式:


vector<T>.erase(iterator);

其中,T表示元素的类型,iterator表示要删除的元素的迭代器。这个迭代器就是指向要删除元素的位置的一个指针。

下面给出一个示例代码:


#include <iostream>

#include <vector>

using namespace std;

int main() {

  vector<int> v 4;

  vector<int>::iterator it = v.begin() + 2;

  v.erase(it); // 删除第3个元素

  for (int i : v)

    cout << i << " ";

  

  cout << endl; // 输出1 2 4 5

  return 0;

}

在上面的示例代码中,我们首先定义了一个包含5个整型元素的vector,然后定义了一个迭代器it,它指向vector中的第3个元素。接着,我们使用erase函数删除了这个元素,最后输出vector中的元素,发现第3个元素已经被删除了。

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

如果要删除vector中的一段元素,可以使用如下格式的erase函数:


vector<T>.erase(iterator start, iterator end);

其中,T表示元素的类型,start和end表示要删除的元素的起始和结束迭代器,它们构成了一个左闭右开的区间。

下面给出一个示例代码:


#include <iostream>

#include <vector>

using namespace std;

int main() {

  vector<int> v 4;

  vector<int>::iterator start = v.begin() + 1;

  vector<int>::iterator end = v.begin() + 4;

  v.erase(start, end); // 删除第2到第4个元素

  for (int i : v)

    cout << i << " ";

  

  cout << endl; // 输出1 5

  return 0;

}

在上面的示例代码中,我们首先定义了一个包含5个整型元素的vector,然后定义了两个迭代器start和end,它们分别指向vector中的第2个元素和第5个元素。接着,我们使用erase函数删除了这些元素,最后输出vector中的元素,发现第2到第4个元素已经被删除了。

总结

C++中的vector是非常实用的数据结构,支持高效的元素访问和操作。其中,erase函数是一个非常重要的函数,可以用来删除vector中的元素。了解和掌握erase函数的用法,对于开发C++程序非常有用。

  
  

评论区

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