如何建立一个成员数不确定的数组,C++实现?

如题所述

tor,个人觉得使用vector会很方便
//动态数组分配
#include <iostream>
int main()
{
int x,n,i=0;
cout<<"将要输入的数字个数"<<endl;
cin>>n;
int * a = new int[n];//动态分配一个有n个数据的数组
while(n)
{
cout<<"输入数字"<<endl;
cin>>x;
a[i] = x;
i++;n--;
}
/* 自己的操作 */

delete[] a;//这一句是必要的,释放内存
return 0;
}

//vector的用法
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> n;
int x ;
while(cin>>x)
n.push_back(x);
//建议你看一看关于vector的操作,访问vector的方法很简单,可以用数组下标访问,也可以新建一个迭代器。个人认为vector很类似于动态链表。
return 0;
}
另外,虚机团上产品团购,超级便宜
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-14
一楼的是正解。
估计LZ不高不知道怎么回事。
解释一下吧。
C++的内存分配分为动态和静态。
动态是在堆栈段操作的(运行时),静态是在代码段操作的(编译时)。
我说的不是static,是说函数内局部变量。static当然更是函数内的了,而且是地址固定的!
简单地说,int a[10],编译时这函数哪怕很局部,也一样是有内存了。
而int *p=new int[10],是运行时了。
结果就是,如果int a[10]真的内存不够了,系统会告诉你,内存不足,该程序无法运行;
而int *p=new int[10],p的结果是NULL,就是0。
这就是动态和静态的区别。
而int a[10]根本不能定义为int a[n],这是C++的静态要求。
int *p=new int[n]是绝对成立的。
OK?本回答被网友采纳
第2个回答  2011-04-15
tor,个人觉得使用vector会很方便
//动态数组分配
#include <iostream>
int main()
{
int x,n,i=0;
cout<<"将要输入的数字个数"<<endl;
cin>>n;
int * a = new int[n];//动态分配一个有n个数据的数组
while(n)
{
cout<<"输入数字"<<endl;
cin>>x;
a[i] = x;
i++;n--;
}
/* 自己的操作 */

delete[] a;//这一句是必要的,释放内存
return 0;
}

//vector的用法
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> n;
int x ;
while(cin>>x)
n.push_back(x);
//建议你看一看关于vector的操作,访问vector的方法很简单,可以用数组下标访问,也可以新建一个迭代器。个人认为vector很类似于动态链表。
return 0;
}
另外,团IDC网上有许多产品团购,便宜有口碑
第3个回答  2011-04-14
一维:
#include<iostream>
using namespace std;
int main () {
int len; //长度变量
cin >> len; //自行分配长度
int *ptr = new int[len]; //ptr指针指向分配内存
------你的函数--------
delete [ ] ptr; //释放空间
return 0;
}

二维:
#include<iostream>
using namespace std;
int main() {
int row; //行数
int col; //列数
cin >> row >> col; //设定行列数
//分配内存空间
int **p;
p = new int*[row];
for( int i = 0; i < row; i++)
p[i] = new int[col];
--------------你的函数----------
//释放空间
for( int i = 0; i < row; i++)
delete [ ] p[i];
delete [ ] p;
return 0;
}
第4个回答  2011-04-14
c++标准库vector容器
相似回答