我刚刚开始学习C++,请原谅我这个简单的问题.我正在做的是从文件中读取数字,然后尝试将它们添加到数组中.我的问题是你如何增加阵列的大小?例如,我认为可能只能这样做:
#includeusing namespace std; int main() { double *x; x = new double[1]; x[0]=5; x = new double[1]; x[1]=6; cout << x[0] << "," << x[1] << endl; return 0; }
但这显然只会覆盖我最初设置为x [0]的值5,因此输出0,6.我怎么做到它会输出5,6?
请注意,对于我已经包含的示例,我不想使用从文件或代码中读取的代码来混淆它以从用户获取数字.在实际的应用程序中,我不知道在编译时我需要多大的数组,所以请不要告诉我只使用两个元素创建一个数组,并将它们分别设置为5和6.
谢谢你的帮助.
您不希望直接使用数组.考虑使用a vector
,而不是.然后,您可以调用该push_back
函数将事物添加到最后,它将自动为您调整矢量大小.
#include#include int main() { double value; std::vector values; // Read in values while (std::cin >> value) { values.push_back(value); } // Print them back out for (std::size_t i(0), len(values.size()); i != len; ++i) { std::cout << values[i]; } }