建立数组,大小由输入确定(C++)

来源:百度知道 编辑:UC知道 时间:2024/05/09 00:30:02
如果要建立一个数组用于存储数据,但为了不浪费空间,数组的大小要由用户的输入确定,就是说用户可能会输入一个数据,也可能输入一百个数据,如何建立一个合适大小的数组来存储这些数据呢?

可以用vector来实现
在头文件里包含
#include<vector>
声明变量是
vector <Datatype> a;
例如
vector <int> a;
然后可以用a.pushback(100);这样读入数据。
要用这个数据的时候直接a[0],a[1]这样输入下标就可以了

你参考一下
#include "stdio.h"
#include "stdlib.h"
void main(void)
{
int sum=0;
int i=0;
int *data;

scanf("%d",&sum);
data=(int *)malloc(sizeof(int)*sum);
for(i=0;i<sum;i++)
scanf("%d",&data[i]);

for(i=0;i<sum;i++)
printf("%d ",data[i]);
}

哀,动态分配内存么,倒搞什么花头么
用malloc函数calloc 或者realloc ,是C++就用 new 和delete
自己用脑算算就出来了

推荐的做法,用stl做,vector, push_back操作。
如果你想自己实现,看看vector 实现原理,就是类似指数增长分配内存。
然后拷贝都新的地方。