21xrx.com
2024-11-22 09:59:47 Friday
登录
文章检索 我的文章 写文章
C++中如何删除数组中的元素
2023-07-05 02:40:14 深夜i     --     --
C++ 删除 数组 元素

在C++中,数组是一种基本的数据结构。删除数组中的元素是一个常见的需求,因为一个数组通常场景下是静态的,大小固定的。因此,在一些情况下,我们需要删除数组中的一个或多个元素来操作其大小。这篇文章将介绍删除数组中元素的两种方法。

方法一:简单删除元素

在C++中删除数组元素的最简单方法是将要删除的元素替换为数组末尾的元素,然后缩小数组的大小,过程如下:


#include <iostream>

using namespace std;

void deleteFromArray(int arr[], int& len, int index) {

  // 如果要删除的元素不是最后一个元素

  if (index < len - 1) {

    arr[index] = arr[len - 1];

  }

  // 缩小数组

  len--;

}

int main()

{

  int arr[] = 30;

  int len = 5;

  // 删除第3个元素

  deleteFromArray(arr, len, 2);

  // 打印新数组

  for (int i = 0; i < len; i++) {

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

  }

  return 0;

}

在上面的例子中,deleteFromArray()函数用于删除数组中的元素。如果要删除的元素不是最后一个元素,则将它替换为数组末尾的元素。然后,缩小数组大小并打印新数组。注意我们用带有参数的指针传递数组长度,因为当我们删除一个元素时,数组的长度会减小。

方法二:使用 vector STL

在C++中,另一种方法是使用 vector STL,该方法提供了更多的灵活性,可以动态地调整数组大小。vector STL是一个非常强大的工具,可以用来代替传统的数组,它提供了一个简化数组管理的方法。

以下是使用 vector STL 删除数组元素的示例代码:


#include <iostream>

#include <vector>

using namespace std;

void deleteFromVector(vector<int>& v, int index) {

  v.erase(v.begin() + index);

}

int main()

{

  vector<int> v = 20;

  // 删除第3个元素

  deleteFromVector(v, 2);

  // 打印新vector

  for (int i = 0; i < v.size(); i++) {

    cout << v[i] << " ";

  }

  return 0;

}

在上面的代码中,deleteFromVector() 函数从一个 vector 中删除元素。erase() 函数是 vector 的一个成员函数,该函数可以删除特定位置的元素。我们将删除索引传递给deleteFromVector() 函数并调用erase()函数进行删除,最后打印更新后的Vector。

这两种方法都可以用来删除数组元素,其中 vector STL 提供了更多的灵活性和操作性。你可以根据需要选择更合适自己的方法来进行操作。

  
  

评论区

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