c++删除数组中重复元素_C / C ++中的数组

C ++提供了一个数据结构array(数组),该数组存储一个固定大小的顺序相同类型元素的集合。它们用于存储相似类型的元素。(所有元素的数据类型必须相同。)它们可用于存储原始数据类型的集合,例如任何特定类型的int,float,double,char等。作为补充,C或C ++中的数组可以存储派生的数据类型,例如结构,指针等。

所有阵列均包含连续的内存位置。最低地址对应于第一个元素,最高地址对应于最后一个元素。

数组声明

要使用C ++声明数组,程序员可以指定元素的类型和数组中的元素数量,例如:

a11d8a5fc55d4ca1bc25088bdc2da68f.png

这称为一维数组。arraySize必须是一个大于零的整数常量,并且type可以是任何有效的C ++数据类型。例如,要声明类型为double的5元素数组,请使用以下语句:

c0b9b3048308ac993681187c1d0a5ad1.png

我们可以通过多种方式声明数组。可以通过初始化或同时指定两者的类型和大小来实现。

1. 通过指定大小声明数组

bec88e09559920a1588af996c6d5f46a.png

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

9a7a9806fb2aff27155473baedc963ab.png

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

360094bb797ea0dd1dd05fb4cfc35bf2.png

C / C ++中的数组的优点:

1. 使用数组索引随机访问元素。

2. 使用更少的代码,因为它创建了包含多个元素的单个数组。

3. 轻松访问所有元素。

4. 使用单个循环,遍历数组变得很容易。

5. 排序变得容易,因为可以通过编写更少的代码来完成排序。

C / C ++中数组的缺点:

1. 允许输入固定数量的元素,这在声明时决定。与链接列表不同,C语言中的数组不是动态的。

2. 元素的插入和删除可能会很昂贵,因为需要根据新的内存分配来管理元素。

数组示例:

88fb6790df548cd81104df83f9f552ec.png

输出:

6b0c5e09f3689cecd108a5b282842cc6.png

元素示例存储在连续的内存位置

4be57d7679fca4c053b7038eb7756b71.png

输出:

fd5c5bc0c9fcac27ded033c100476d41.png

多维数组

C ++允许多维数组。这是多维数组声明的一般形式-

b129a2d2364d9677da9878b828ff63a0.png

例如,以下声明创建了三维5。10。4个整数数组-

9103e670cc6a66c15381299b497764ac.png

二维阵列

多维数组的最简单形式是二维数组。本质上,二维数组是一维数组的列表。要声明大小为x,y的二维整数数组,应编写如下内容:

359a30d8d15d221971b23278e7202bb4.png

Type可以是任何有效的C ++数据类型,并且arrayName将是有效的C ++标识符。

可以将二维数组视为一个表,该表将具有x的行数和y的列数。包含三行四列的二维数组a可以显示如下:

e74efbc06d34d286f31826d3210215a5.png

数组a中的每个元素都由形式为a [i] [j]的元素名称标识,其中a是数组的名称,而i和j是唯一标识a中每个元素的下标。

初始化二维数组

多维数组可以通过为每行指定带括号的值来初始化。以下是具有3行的数组,其中每行有4列。

c1c7e215269e04b70d8ee56d24f15010.png

指示所需行的嵌套括号是可选的。以下初始化等效于先前的示例-

762e4e3803724f3af59d229d12e0fa65.png

访问二维数组元素

使用下标(即数组的行索引和列索引)访问二维数组中的元素。例如:

89899ac1b37f24a1879741e5ec58ae36.png

上面的语句将从数组的第三行获取第4个元素。您可以在上图中验证这一点。

aff545c8199fc907fbc26ce235ee8470.png

输出:

2bf189a9fd4ecc8e5a72aee2d647ffb5.png

如上所述,您可以具有任意数量的维度数组,尽管您创建的大多数数组很可能是一维或二维的。

指向数组的指针

除非您对指针有相当的了解,否则您很可能不会理解本章。

因此,假设您对C ++中的指针有一点了解,那么让我们开始:数组名称是指向数组第一个元素的常量指针。因此,在声明中:

9c08ab36208ba9c47401c5d81261fbd1.png

balance是指向的指针&balance[0],它是数组balance的第一个元素的地址。因此,以下程序片段将分配p第一个元素的地址balance:

8b412f7229500fae9016c64ab12923a3.png

将数组名称用作常量指针是合法的,反之亦然。因此,这*(balance + 4)是访问处数据的合法方法balance[4]。

一旦储存在第一个元素的地址p,则可以使用数组元素访问*p, *(p+1),*(p+2),等。下面是显示上述所有概念的示例:

355aab6ee3af11090734c9d9aef6fea6.png

输出:

13e466e9ae4adf74223b3b75b286d2e9.png

在上面的示例中,p是指向的指针double,这意味着它可以存储double型变量的地址。一旦我们在p中有地址,那么* p将为我们提供在p中存储的地址处可用的值,如上例所示。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值