c++用输入数据创建数组

c++ creating array with input data

本文关键字:创建 数组 数据 输入 c++      更新时间:2023-10-16

我的任务是在一行数据中输入,1个数字告诉数组将有多少个元素,下一个数字告诉我们它们将是什么元素。在输入数据之前,我不知道3个元素或300个数组可以有多大。示例

Input 5 3 6 5 7 8 

Array1[5]={3,6,5,7,8}
如果我按下回车键,它会初始化下一个表Board2,如

Input 3 9 8 3
Array2[3]={9,8,3}

如果他有两次输入,他将停止输入数据。你能帮我做这个吗?

您可以尝试老式方法,在读取容量后从动态内存中分配阵列:

int capacity = 0;
std::cin >> capacity;
int * array = new int[capacity];
for (int i = 0; i < capacity; ++i)
{
std::cin >> array[i];
}
//...
delete [] array;

您可以使用std::istringstreamstd::vector,例如:

std::string input;
std::getline(std::cin, input);
std::istringstream iss(input);
int n;
iss >> n;
std::vector<int> vec(n);
for(int i = 0; i < n; ++i) {
iss >> vec[i];
}

另一方面,如果你使用这种方法,那么你可以完全省略前导数字,因为std::vector可以动态增长,所以不需要明确输入中的数字计数:

std::string input;
std::getline(std::cin, input);
std::istringstream iss(input);
int i;
std::vector<int> vec;
while (iss >> i) {
vec.push_back(i);
}
/* Alternatively:
std::vector<int> vec(
std::istream_iterator<int>(iss),
std::istream_iterator<int>()
);
*/