如何在C ++中实现数组?

时间:2020-02-23 14:29:52  来源:igfitidea点击:

数组是具有相同数据类型的元素的顺序集合。
它们被顺序存储在存储器中。
数组是包含相似类型元素的数据结构。
数组元素不会像在Java中那样被视为c ++中的对象。
在本文中,我们将讨论C ++中的数组。

C ++中的数组

假设我们在音乐唱片商店,我告诉我们将所有唱片放在XYZ Records标签下,放在另一个地方。
记录的这种顺序集合可以称为数组。
数组是相同数据类型的元素的顺序集合。
在上面的示例中," XYZ记录"是数据类型,并且我们收集的所有记录都具有相同的发布者。
数组中的所有元素均以通用名称寻址。

有关C ++中的数组的本文将重点介绍这些基本指针,

  • 一维数组

  • 声明期间的初始化

  • 用户初始化

  • 随时访问阵列

  • 多维数组

让我们首先了解什么是一维数组,

单维数组

声明一维数组的语法

我们有一个数据类型,它可以是任何基本数据类型,例如int,float或者double。
数组名称是数组的名称,我们声明数组的大小。
在上面的示例中,数组为

XYZ Record recordArray[100];

让我们考虑另一个示例:

int test[20];

数组测试将保存int类型的元素,并且大小为20。

" C ++中的数组:数组大小"

数组大小在声明数组时给出。
一旦指定了数组的大小,就无法更改。
然后,编译器会为阵列分配那么多的内存空间。

考虑例子

int test[20];

在上面的示例中,我们有一个类型为int的数组测试。
我们将数组大小设置为20。
这意味着将在内存中为数组保留20个连续的内存位置。

数组索引和初始化

与数组中每个位置关联的数字,该数字称为数组索引。
它从0开始到最后一个元素,即数组的大小减去1.
因为我们从零开始计数而不是从1开始,所以这里有负1.
数组索引始终从零开始。

考虑这个例子,这是年龄数组。

数组值1241031307
数组索引01234

这里的数组包含值12,41,3,13,7,索引为0,1,2,3,4,5.
如果要在索引4处表示元素,则将其表示为age [4],并显示值7.

默认情况下,数组包含所有零值。
数组初始化在声明时完成。
如果用户在需要时输入数组值,也可以稍后执行此操作。

让我们看看初始化过程中初始化是如何工作的,

声明期间的初始化

数组可以在声明期间初始化。
这是通过在声明时指定数组元素来完成的。
这里的数组大小也是固定的,由我们决定。

考虑一下代码,

#include<iostream>
using namespace std;
int main()
{
int arr[] = { 10, 20, 30, 40 } ;
return 0;
}

说明

在上面的示例中,我们创建了一个类型为int且名称为arr的数组。
我们直接指定数组元素。
数组的大小是通过计算数组中元素的数量来确定的。
在这种情况下,大小为4.

这篇关于C ++数组的文章的下一部分让我们看到了用户初始化的工作方式

用户初始化

在这种方法中,我们让用户决定数组的大小。
在这种情况下,我们需要一个变量来保存数组的大小,并需要一个for循环来接受数组的元素。
我们在声明时分配一个随机大小,仅在需要时使用。
开始时的大小通常在较高的一侧。
我们有一个变量i来控制for循环。

考虑这个例子,

#include<iostream>
using namespace std;
int main()
{
int arr[50],n,i ;
cout<<"Enter the size of array:"<<endl;
cin>>n;
cout<<"Enter the elements of array:"<<endl;
for(i=0;i<n;i++)
{
cin>>arr[i];
}
return 0;
}

说明

在上面的程序中,我们声明了一个大小为50的数组。
然后,我们要求用户输入他希望在该数组中输入的元素数。
然后,我们接受用户输入的数组元素。

C ++中的数组:显示数组

显示数组还需要for循环。
我们遍历整个数组并显示该数组的元素。

这是一个例子

#include<iostream>
using namespace std;
int main()
{
int arr[50],n,i ;
cout<<"Enter the size of array:"<<endl;
cin>>n;
cout<<"Enter the elements of array:"<<endl;
for(i=0;i<n;i++)
{
cin>>arr[i];
}
cout<<"Array elements are:"<<endl;
for(i=0;i<n;i++)
{
cout<<arr[i]<<"t";
}
return 0;
}

说明

在上面的程序中,我们声明了一个大小为50的数组。
然后,我们要求用户输入他希望在该数组中输入的元素数。
然后,我们接受用户输入的数组元素。
然后,我们再次使用for循环显示数组元素。

随时随地访问阵列

访问数组元素很简单,可以通过使用数组索引来完成。
看看下面的代码。

#include<iostream>
using namespace std;
int main()
{
int arr[5],i ;
arr[4]=2;
arr[2]=17;
arr[0]=17;
cout<<"Array elements are:"<<endl;
for(i=0;i<5;i++)
{
cout<<arr[i]<<"t";
}
return 0;
}

说明

在上面的程序中,我们有一个大小为5的数组。
我们使用数组索引在不同位置输入元素。
我们打印数组以获得上面的输出。

默认情况下,所有数组元素均为零。

如果我们越过数组大小会怎样?

在c ++中,如果尝试超出范围访问元素,则编译器可能不会显示错误,但不会获得正确的输出。

这将我们带到C ++文章中有关此数组的最后一部分,

多维数组

数组的数组是多维数组。
这是因为多维数组中的每个元素都有其自己的数组。
我们需要n个for循环来迭代多维数组,具体取决于维度。

声明多维数组的语法

Datatype arrayname[size1][size2]…..[size n]
int a[10][20];

考虑这个例子,

上面数组的大小将为10 * 20,即200个元素。
同样,我们可以有两个或者三个甚至更多个维数组。
每个维度都需要一个for循环。
因此,二维数组需要二维,而三维数组需要三个。

考虑代码

#include<iostream>
using namespace std;
int main()
{
int arr[3][2] = {{0,1}, {2,3}, {4,5}};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
cout << "Element:";
cout <<arr[i][j]<<endl;
}
}
return 0;
}t

在上面的代码中,我们显示3 * 2矩阵。
该数组有3行2列。
我们有2个for循环。
每个负责数组的一维。
外部for循环负责行和列内部。

类似地,我们可以为三维数组编写代码,将有三个for循环,每个维度将由一个for循环控制。