21xrx.com
2025-07-05 09:00:08 Saturday
登录
文章检索 我的文章 写文章
如何在 C++ 中删除 vector 中的元素
2023-06-27 11:15:56 深夜i     22     0
C++ vector 删除 元素

在C++中,vector是一个非常常用的容器,它可以在内存中动态地存储一组元素。有时候我们需要在vector中删除某些元素,本文将介绍如何在C++中删除vector中的元素。

第一种方法是使用erase()函数。这个函数的语法如下:

vector_name.erase(iterator_position);

其中,vector_name是要操作的vector,iterator_position是要删除的元素的迭代器位置。该函数会从vector中删除指定位置的元素,并移动其后面的所有元素。

下面是一个例子,演示如何使用erase()函数删除vector中的元素:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
  vector<int> myvector;
  myvector.push_back(10);
  myvector.push_back(20);
  myvector.push_back(30);
  myvector.push_back(40);
  myvector.push_back(50);
  // 打印原始vector
  for (auto i = myvector.begin(); i != myvector.end(); i++)
  {
    cout << *i << " ";
  }
  cout << endl;
  // 删除第三个元素
  myvector.erase(myvector.begin() + 2);
  // 打印删除后的vector
  for (auto i = myvector.begin(); i != myvector.end(); i++)
  {
    cout << *i << " ";
  }
  cout << endl;
  return 0;
}

该程序删除了vector中的第三个元素(即30),输出结果如下:

10 20 30 40 50
10 20 40 50

第二种方法是使用remove()函数。这个函数的语法如下:

vector_name.erase(remove(vector_name.begin(), vector_name.end(), element_to_remove), vector_name.end());

其中,vector_name是要操作的vector,element_to_remove是要删除的元素值。该函数会从vector中删除所有等于element_to_remove的元素,并移动其后面的所有元素。

下面是一个例子,演示如何使用remove()函数删除vector中的元素:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
  vector<int> myvector;
  myvector.push_back(10);
  myvector.push_back(20);
  myvector.push_back(30);
  myvector.push_back(40);
  myvector.push_back(50);
  // 打印原始vector
  for (auto i = myvector.begin(); i != myvector.end(); i++)
  {
    cout << *i << " ";
  }
  cout << endl;
  // 删除值为30的元素
  int element_to_remove = 30;
  myvector.erase(remove(myvector.begin(), myvector.end(), element_to_remove), myvector.end());
  // 打印删除后的vector
  for (auto i = myvector.begin(); i != myvector.end(); i++)
  {
    cout << *i << " ";
  }
  cout << endl;
  return 0;
}

该程序删除了vector中值为30的元素,输出结果如下:

10 20 30 40 50
10 20 40 50

总之,C++提供了多种方法来删除vector中的元素。使用哪种方法取决于你的需求和个人偏好。掌握这些方法可以使你更加有效地操作vector,提高开发效率。

  
  

评论区