int a[n];
这种定义数组的方法需要事先确定好数组的长度,即 n 必须为常量,这意味着,如果在实际应用中无法确定数组长度,则一般会将数组长度设为可能的最大值,但这极有可能导致存储空间的浪费。int *p = new int[n];
这种定义方式可根据变量 n 动态申请内存,不会出现存储空间浪费的问题。但是,如果程序执行过程中出现空间不足的情况时,则需要加大存储空间,此时需要进行如下操作:int * temp = new int[m];
memecpy(temp, p, sizeof(int)*n);
delete [] p; p = temp;
vector <int> a; //定义 a 数组,当前数组长度为 0,但和普通数组不同的是,此数组 a 可以根据存储数据的数量自动变长。 //向数组 a 中添加 10 个元素 for (int i = 0; i < 10 ; i++) a.push_back(i) //还可以手动调整数组 a 的大小 a.resize(100); a[90] = 100; //还可以直接删除数组 a 中所有的元素,此时 a 的长度变为 0 a.clear(); //重新调整 a 的大小为 20,并存储 20 个 -1 元素。 a.resize(20, -1)对比以上两种使用数组的方式不难看出,使用 STL 可以更加方便灵活地处理数据。所以,大家只需要系统地学习 STL,便可以集中精力去实现程序的功能,而无需再纠结某些细节如何用代码实现。
本文链接:http://task.lmcjl.com/news/18017.html