如何在C++中删除一个数组或删除数组中的一个元素 您所在的位置:网站首页 数组删除元素的时间复杂度 如何在C++中删除一个数组或删除数组中的一个元素

如何在C++中删除一个数组或删除数组中的一个元素

2023-07-01 10:19| 来源: 网络整理| 查看: 265

在这篇文章中,我们解释了如何在C++中删除一个数组或删除数组中的一个元素。我们涵盖了静态和动态内存分配数组的情况,以及数组的基本知识。

目录:

阵列的基本原理和不同的操作 C/C++中的Delete() 删除数组中的一个元素 在C++中删除静态分配的数组 在C++中删除动态分配的数组 删除一个数组的复杂时间

现在我们来探讨一下C++中删除数组的整个过程。

下面是关于删除过程的一些关键点:-

删除一个数组类似于给这个特定的元素分配了未定义。 删除要删除的元素,并将其他元素移到左边以保持所有元素在一起。 如果数组是静态分配的内存,内存不能被删除。当程序终止时,内存被释放。 如果数组是动态分配的内存,额外的内存可以通过使用realloc来删除。 删除一个元素的时间复杂度是O(N)时间。

让我们开始讨论什么是数组,什么是数组的类型以及数组的声明过程。

阵列的基础和不同的操作 数组的介绍

一个数组是一组相关的数据类型,它们用共同的名字来调用,并且都具有相同的类型和大小。一个数组是一个类似数据类型的元素的集合。这个集合是有限的,元素被存储在相邻的内存位置。

数组声明的语法是:- 数据类型 array_name[size_of_array]。

表示顺序 :- 1.行为主的顺序- 数组的行为主的表示顺序是指元素以行的方式存储在数组中的顺序。

2.2.列主要顺序- 数组的列主要顺序是指元素以列的方式存储在数组中。

阵列的声明

数组变量的声明与它们的数据类型的变量相同,只是变量的名字后面有一对方括号[ ],代表数组的每个维度。未初始化的数组必须在方括号内列出其行和列的尺寸。 在C语言中声明数组时使用的尺寸必须是正积分常数或常数表达式。

我们可以用不同的方法来声明一个数组。可以通过指定它的类型和大小,或者通过初始化它,或者两者同时进行。

通过指定大小的数组声明

int arr1[10] 复制代码

我们可以声明一个用户指定大小的数组

int arr2[n] 复制代码

通过初始化元素进行数组声明

int arr[] = {10, 20, 30, 40} 复制代码

编译器创建了一个大小为4的数组

通过指定大小和初始化元素进行数组声明

int arr[6] = {10, 20, 30, 40,} 复制代码

编译器创建了一个大小为6的数组,初始化了用户指定的前4个元素,其余元素为{0,0}。

数组的类型:-

数组可以有以下类型:-

静态或(一维)数组。 动态数组或(2D-3D)数组。

静态数组 静态数组是最常用的数组形式。它是一种大小不能改变的数组类型。静态数组在堆栈中存储它们的值,它们的大小必须在编译时知道。 它有一个局部范围。因此,它只能在声明它的块中使用。如果静态数组没有被特别初始化,它的元素会被初始化为默认值,对于任何算术类型(int, float, char),默认值为0,对于指针,默认值为NULL。静态数组在程序执行结束前都有其寿命。因此,在一个函数中定义的静态数组在控制权离开该函数时不会被破坏,该数组的值在下次调用该函数时也适用。

动态数组 动态数组是一个有巨大改进的数组:自动调整大小。数组的一个障碍是它们是固定大小的。这意味着你需要提前指定你的数组所能容纳的元素数量。一个动态数组会随着我们在其中添加更多的元素而扩展。 当我们指定一个动态数组时,动态数组的实现会产生一个固定大小的元素数组。由于未使用的内存适用于堆,所以每当运行时提供内存时,都会使用堆数据结构来指定,因为它是自由内存空间的池。在C++中,我们有一个操作符,叫做new,它的返回地址指定在堆中的变量上。

基本操作:-

以下是数组支持的基本操作。

遍历 对数组中的每个元素精确处理一次的方法被称为遍历,整个操作被称为遍历。 在数组中,遍历操作从数组的第一个元素开始,到数组的最后一个元素结束。 算法:- 第1步。 [初始化] 设置l = LB。 第2步。重复步骤3和4,同时l=P 第3步。 [向下移动第1个元素]设A[l+1] = A[l] 第4步。 [减少计数器]设l=l-1 [ 循环结束] 第5步。[插入元素]设A[P]=X 第6步。设置N=N+1 第7步 退出 这里,P是位置;N是元素的数量;A[]是数组

删除 这个操作用于从一维数组中的特定位置删除一个元素。 为了从数组中删除一个元素,我们必须从特定位置删除一个元素,然后将剩余的元素向上移动,以占据被删除元素的空位。 算法;- 第1步。 [初始化]设X=A[P] 第2步。[循环]重复l=P到N-1 第3步。 [向上移动l+1个元素]设A[P]=X [循环结束] 第4步。 [重置数字N]设N=N-1 第5步。 退出

搜索 搜索操作是用来找出元素的位置,如果它存在于给定的数据元素集合中。 假设数组中要搜索的元素是X,那么我们必须从头开始,并且必须将X与每个元素进行比较。这个操作将持续进行,直到找到元素或数组结束。 算法:- 步骤1. SREP 2. S

更新 更新操作是指在给定的索引处更新数组中的一个现有元素。 基本上,更新操作是在我们想要更新数组中的任何元素时使用。假设我们想更新数组列表中的现有元素,那么在更新操作的帮助下,我们可以很容易地更新列表中现有元素的新值。

C/C++中的Delete()

Delete是一个操作符,用于蹂躏由new语句生成的数组和非数组(指针)对象。C语言使用malloc()和calloc()函数在运行时动态地指定内存,并使用free()函数释放动态分配的内存。

C++支持这些功能,也有一些操作符new和delete,以更好、更容易的方式执行指定和释放内存的任务。

问题 什么是删除操作符?

删除一个内存块

删除整个程序的内存

只分配原始数据内存

删除为一个类保留的所有数据。

解释。删除操作符是新建操作符的反向过程。它取消了为一个对象分配的所有内存。该对象可以是任何类型的。删除操作符完全销毁了一个对象,这样资源就可以用于其他目的。

删除数组中的一个元素

从数组中删除元素的详细逻辑步骤:-

移动到你想在给定数组中删除的位置。 将下一个元素复制到数组的当前元素,也就是你需要执行array[i] = array[i + 1]。 重复以上步骤,直到你到达数组的最后一个元素。 最后将数组的大小减少一个。

阵列中的删除操作的算法:-

考虑LA是一个有N个元素的衬里数组,K是一个正整数,使得K



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有