多语言展示
当前在线:658今日阅读:61今日分享:18

如何把一个数插入一堆数组中

题目中是一堆数组,显然各语言中只有一维数组,实际上不管一维还是多维数组,在内存中都是线性的一维数组,多维数组都是可以按一维数组来处理的。那么我们今天就探讨一下,在一维数组中如何插入一项。
工具/原料

任意一个C++集成开发工具

前提说明

本文的例子:在一个有着10个数字的一维数组中第五位插入一个数字。使用语言:C++。开发工具:Dev-C++或者Devcpp如果您不熟悉Dev-C++的使用的话,可以参考我的另一篇经验。

方法一/步骤
1

我们都知道数组的大小在定义时是固定的,而且数组的元素的位置是固定的。因此如果想要在一个现有数组中插入一项数据的话,首先你需要保证数组的大小足够大,其次你需要将插入数据位置的后面所有数据向后移动。我们来看看演示。

2

上面的演示中,我们预先了一个有着11个空间的数组,数组的前10个空间都有一个数字,分别是1到10。现在有一个数字11需要插入到第5个位置。第一步,先将5到10的6个空间向后移动一位。

3

我们再来看看移动后的情况是什么样的。

4

既然位置已经空出来了,我们直接将数字10填入空出来的地方就行了。

5

下面就是编写代码来实现这个功能了。代码如下:#include using namespace std;//函数printarray是为了将数组输出 void printarray(int *arr){    for(int i=0;i<11;++i)    {    cout<3;--i) { arr[i]=arr[i-1]; cout<<'第'<

方法二/步骤
1

方法一时,我们在定义数组的时候预先多留了一个位置。那么假如我们定义时只定义了10个空间怎么办。难道还按照方法一去做吗?如果你真的去这么做了或许也会得到正确的结果,但是迟早有一天会出错的,因为你超出数组的空间去写数据很有可能会对其他有用数据造成破坏,严重者导致其他程序崩溃或者系统崩溃。所以不要那么去做。那该怎么办呢?还是先来看看演示吧!

3

那么空间找到了,该怎么插入数字11呢。我们先将1-10这10个数字分开拷贝纸至新的空间。

4

最后再将11放入新空间的第五个位置。

5

好,我们可以开始写代码了。代码如下:#include #include using namespace std;//函数printarray是为了将数组输出 void printarray(int *arr){    for(int i=0;i<11;++i)    {    cout<=4) {            newarr[i+1]=arr[i]; } else { newarr[i]=arr[i]; } printarray(newarr);//打印输出每一次移动后的newarr数组  } newarr[4] =11; cout<<'\n最终结果为:' <

总结

从两种方式的运行效率来看,因为第二种要动态申请内存,移动的数字也较多,显然效率要低不少。本例的数组小所以几乎没有影响。如果您在今后使用中要注意这个问题。同时动态内存的使用要比第一种方便灵活的多,也更好用。最后,数组操作的安全性以及操作使用上可以用标准模板库的各种容器来实现,相比起来标准模板库更加安全性能更好,更易操作使用。

推荐信息