21xrx.com
2024-11-05 12:19:51 Tuesday
登录
文章检索 我的文章 写文章
C++如何从数组中删除指定元素?
2023-07-07 20:17:36 深夜i     --     --
C++ 数组 删除 指定元素

在C++编程中,我们经常需要从数组中删除特定元素,特别是当数组中存在多个相同元素时,删除特定元素会变得更加必要。但是,由于数组在创建时具有固定大小,因此似乎不可能从数组中删除元素。幸运的是,C++提供了几种方法来删除数组中的特定元素。

1.使用std::vector:使用std::vector是从数组中删除元素的最简单和最常见的方法之一。vector是一个动态数组,可以通过调整大小来添加或删除元素。下面是一个使用vector来删除元素的示例代码:


#include <iostream>

#include <vector>

using namespace std;

int main()

{

  vector<int> vec 2;

  // 删除元素3

  auto it = std::find(vec.begin(), vec.end(), 3);

  if (it != vec.end())

  {

    vec.erase(it);

  }

  for (auto i : vec)

    cout << i << endl;

  return 0;

}

2.使用std::remove:std::remove是STL算法中的一种,可以在数组中找到特定元素并将其移至数组的末尾。然后可以使用数组的实际大小截断数组,以从其中删除元素。这种方法的示例代码如下所示:


#include <iostream>

#include <algorithm>

using namespace std;

int main()

{

  int arr[] = 2;

  int n = sizeof(arr) / sizeof(arr[0]);

  // 删除元素3

  int* p = std::remove(arr, arr + n, 3);

  n = p - arr;

  for (int i = 0; i < n; i++)

    cout << arr[i] << " ";

  return 0;

}

3.使用基本数组:如果不想使用STL容器,还可以使用基本数组来删除特定元素。要从基本数组中删除元素,可以将元素之后的所有元素向前移动一个位置。以下是基本数组的示例代码:


#include <iostream>

using namespace std;

int main()

{

  int arr[] = 1;

  int n = sizeof(arr) / sizeof(arr[0]);

  int item = 3;

  // 删除元素3

  int i, j;

  for (i = 0; i < n; i++)

  {

    if (arr[i] == item)

      break;

  }

  if (i < n)

  {

    n--;

    for (j = i; j < n; j++)

      arr[j] = arr[j + 1];

  }

  for (int k = 0; k < n; k++)

    cout << arr[k] << " ";

  return 0;

}

以上是在C++中删除数组中指定元素的三种方法。这些方法都很有效,您可以根据自己的需求选择其中一种方法。

  
  

评论区

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