如题所述
第1个回答 推荐于2017-10-01
C++本身不支持未知大小的动态数组,你的需求通常有两种方法可以解决。
方法1:动态申请内存法
代码片段如下:
int *p,num;cout<<"请输入你的数组大小";
cin>>num; //运行时得到了数组大小
p=new int[num]; //根据需求动态申请内存
//这里可以输入数组并干活了
delete []p; //释放内存
方法2:使用向量Vector
1)Vector是C++STL中提供的向量;
2)向量的大小可以动态改变;
3)向量可以通过下标访问元素(感觉像使用数组);
4)可以通过push_back向向量中添加元素并改变大小。
代码片段如下:
#include <vector> //文件包含//......
vector <int> myArray;
//可以根据数据需求用 myArray.push_back(整数);来添加元素
//可以通过下标访问向量元素
第2个回答 推荐于2017-09-23
可以用vector容器。。
比如说输入一个大小未知的数组,当输入的数字为-1的时候停止输入。
然户把数组数输出……
代码如下。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a;
vector<int>p;
while(cin>>a)
{
if(a==-1)
break;
p.push_back(a);
}
for(int i=0;i<p.size();i++)
cout<<p[i]<<' ';
cout<<endl;
}
=======================
具体的楼主可以去百度……本回答被提问者采纳
比如说输入一个大小未知的数组,当输入的数字为-1的时候停止输入。
然户把数组数输出……
代码如下。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a;
vector<int>p;
while(cin>>a)
{
if(a==-1)
break;
p.push_back(a);
}
for(int i=0;i<p.size();i++)
cout<<p[i]<<' ';
cout<<endl;
}
=======================
具体的楼主可以去百度……本回答被提问者采纳
第3个回答 2011-12-24
数组必须是常量.知道什么叫常量吧?
不过你可以这样.char *ch =new char[i];这里的i可以是变量.但是也要是先确定的值.
还有你也可以作用C++的字符串,string 来接收一个数组.然后再使用这个字符串调用c_str函数将C++字符串换转为C字符串.最后去掉字符串末尾的'\0'就是一个数组了.
再有一个办法,自己写一个数组类并且重载[]下标.这个有点长就不帮你写了.
你先确定下你要的是哪种吧追问
不过你可以这样.char *ch =new char[i];这里的i可以是变量.但是也要是先确定的值.
还有你也可以作用C++的字符串,string 来接收一个数组.然后再使用这个字符串调用c_str函数将C++字符串换转为C字符串.最后去掉字符串末尾的'\0'就是一个数组了.
再有一个办法,自己写一个数组类并且重载[]下标.这个有点长就不帮你写了.
你先确定下你要的是哪种吧追问
知道常量、也知道用指针,但是i 的大小还是不知道。。。。
方法三、方法四都给我写一下吧~~谢谢~~
方法三我们学过 atoi ,但不知怎么用。。。。
非常感谢!
第4个回答 2011-12-24
动态分配数组空间