C++,输入数据不限制时,如何实现存储?

来源:百度知道 编辑:UC知道 时间:2024/05/14 05:14:00
比如这段代码,只能输入十个数据。

int a[10];
for(int i=0;i<10;i++) cin>>a[i];

数组的大小是固定的,定义过大,浪费空间,定义过小,输入受限。

我记得有一种是通过静态存储分配解决的。用到 new delete.
可记不清楚了。
一楼回答不正确
const int size = 10;
直接限制数组大小为10了。

用户可以以输入某个特殊字符作为结束,在输入特定字符之前,可以随心输入数据。

3楼还不错,可是用户一开始也不知道自己要输入多少啊!

#include<iostream>
using namespace std;
int main()
{
int i,n;
cout<<"输入你想要的数组大小(存储的数据个数):"<<endl;
cin>>n;
int *p=new int[n];
cout<<"输入数据:"<<endl;
for(i=0;i<n;i++)
cin>>p[i]; //存储完毕
for(i=0;i<n;i++)
cout<<p[i]<<" ";
cout<<endl;
delete []p;
return 0;
}

使用vector

#include<iostream>
#include<vector>

using namespace std;

int main()
{
int x;
vector<int> a;
while(cin>>x)
{
a.push_back(x):
}
}

参见http://www.cplusplus.com/reference/stl/vector/

const int size = 10;
int a[] = new int[size];
for(int i=0;i<size;i++)
{
cin>>a[i];
}
delete []a;