一.动态数组

  一般我们定义数组都是用下面的方式:

  int str[100];

  但对于一些需要手动输入数组大小的情况,这种定义方式就行不通了。因为上面这种方式要求事先知道数组大小,并且给数组中括号中必须是一个常数。因此我们需要创建动态数组。方式如下:

  int *str=new int[n];    //这里的n可以是已赋值的变量。

这种方式下,用new开辟了一段内存空间后返回这段内存的首地址给指针str.所以我们可以通过str[i++]或者str++的方式来遍历数组。然后就是注意要注销指针str,使程序释放用new开辟的内存空间,这不仅有助于养成好的编程习惯,而且对于大型项目来说是非常重要的。用下面方式回收:

  delete[]   str;

当然使用C++标准模版库(STL)中的vector(向量)也可以实现变长数组: 

vector<int>   array(len);//声明变长数组 

java的java.util包中的vector和C#中的ArrayList,它们也可以在各自的语言中实现变长数组。不过C++中的vector不能像C#一样有托管的垃圾回收机制回收被占用的内存空间,但可以在使用完vector后调用~vector()析构函数释放内存。
 

 

posted on 2015-11-09 16:14  寒若雪  阅读(150)  评论(0编辑  收藏  举报