21xrx.com
2024-11-22 11:08:26 Friday
登录
文章检索 我的文章 写文章
如何在 C++ 中删除 vector 中的元素
2023-06-27 11:15:56 深夜i     --     --
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,提高开发效率。

  
  

评论区

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