21xrx.com
2024-11-22 12:20:25 Friday
登录
文章检索 我的文章 写文章
C++如何删除数组的最后一个元素?
2023-07-03 09:50:51 深夜i     --     --
C++ 删除 数组 最后一个元素

在C++中,删除数组的最后一个元素是一种常见的问题,特别是当你需要动态改变数组的长度时。虽然C++的数组长度是固定的,但你可以使用指针来模拟动态数组。在这篇文章中,我们将介绍一些常见的方法来删除数组的最后一个元素。

方法一:重新分配数组大小

一种常见的方法是重新分配数组大小,使其比原来的数组少一个元素。这个方法需要用到C++的new运算符来分配新的内存空间,然后将原来的数组元素复制到新数组中。以下是一个例子:


int main()

{

  int arr[] = 4;

  int new_size = sizeof(arr) / sizeof(arr[0]) - 1;

  int* new_arr = new int[new_size];

  

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

  {

    new_arr[i] = arr[i];

    cout << new_arr[i] << " ";

  }

  delete[] new_arr;

}

首先,我们定义一个数组arr包含5个整数元素。然后,我们使用sizeof运算符和元素的类型来计算原始数组的大小。然后,我们使用new运算符来分配一个新数组,其大小为原先数组的大小减去1。然后,我们使用for循环将原先数组中的元素复制到新数组中。最后,我们将新数组打印出来,并使用delete运算符删除新数组。

方法二:使用vector容器

另一种常见的方法是使用C++ STL的vector容器。vector容器可以动态改变大小,并提供了许多有用的函数来操作容器元素。以下是一个例子:


#include <iostream>

#include <vector>

using namespace std;

int main()

{

  vector<int> v = 5;

  v.pop_back();

  

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

  {

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

  }

}

首先,我们使用vector 来定义一个整数向量v,并将5个元素分别赋值为1、2、3、4、5。然后,我们使用pop_back函数来删除向量v中的最后一个元素。最后,我们使用for循环将修改后的向量打印出来。

这两种方法都可以达到删除数组最后一个元素的目的。使用第一种方法需要我们手动复制原先数组的元素到新数组中,但可以在内存使用上更为自由;使用第二种方法则完全交由容器来管理,更加方便快捷。总之,选择哪种方法取决于你的需求和偏好。

  
  

评论区

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