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