int n = 10;
int a[n];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
当我们知道n
的大小时,这就是我输入数组的方式。但是,当我们不知道n
的大小时,我们必须在数组中接受输入,并在出现新行时停止接受输入。我们如何在C ++中做到这一点?
答案 0 :(得分:2)
std::vector<int>
是您所需要的。将其视为动态大小的数组。
您可以使用.push_back()
答案 1 :(得分:2)
要停止接受输入,您需要使用EOF Concept。即文件结尾。将cin放入while循环中。 像这样-
while (cin >> n)
{
a.push_back(n);
}
答案 2 :(得分:0)
因此,这阻止了您进行错误检查,但是至少对于我的玩具项目而言,是将vector
与istream_iterator
一起使用,所以类似这样:
const vector<int> a{ istream_iterator<int>{ cin }, istream_iterator<int>{} }
答案 3 :(得分:0)
除非您正在使用string
,否则可能需要stoi();
类型的向量
所以基本上像下面的代码。
int n = 10;
vector<string> a;
string temp;
while(cin>>temp)
{
a.push_back(temp);
}
或
vector<int> a;
while(cin>>temp)
{
a.push_back(stoi(temp));
}