输入:5
long long n;
cin>>n;
long long a[n];
for(long long i=0;i<n;i++){
cin>>a[i];
}
如何在不输入 n
的情况下输入数组元素?
这就是我要寻找的:
输入:1,2,3,4,5
cout << a[0]
输出:
1
原文由 Nson 发布,翻译遵循 CC BY-SA 4.0 许可协议
输入:5
long long n;
cin>>n;
long long a[n];
for(long long i=0;i<n;i++){
cin>>a[i];
}
如何在不输入 n
的情况下输入数组元素?
这就是我要寻找的:
输入:1,2,3,4,5
cout << a[0]
输出:
1
原文由 Nson 发布,翻译遵循 CC BY-SA 4.0 许可协议
请改用 std::vector<long long> a;
。
然后使用 long long temp;
、 cin >> temp;
和 a.push_back(temp);
。
这意味着向量将随着您添加更多数据而自动增长。从某种意义上说,有 更聪明 的方法,但我的方法具有 清晰 的优势。
这些天来,酷猫不再担心重复 push_back
因为他们相信 C++ 标准库实现可以为您保持良好和完整的内存。但是,如果您必须这样做,那么 std::vector
确实允许您通过其 reserve
方法设置初始 _容量_:如果您愿意,您仍然可以将您的向量增长到超出此范围。
原文由 Bathsheba 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
C++ 中的标准输入过滤器循环是
while(cin >> a)
- 这将一直读取,直到没有更多输入,或者发生其他不好的事情:您还可以使用带输入迭代器的单行 - 读取向量中元素的最短方法:
在此处查看 Ideone 示例
但是,假设您希望忽略所有这些 C++ 令人敬畏的东西,恕我直言,强烈建议您这样做,您可以:
请注意,您将:
MAX_SIZE
,因此:使用
std::vector
!!