c++用输入数据创建数组
c++ creating array with input data
我的任务是在一行数据中输入,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::istringstream
和std::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>()
);
*/
相关文章:
- 在将 new 与指针一起使用时,创建数组的指定长度
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- 合并排序不排序自创建数组类 c++
- 基于参数创建数组
- 使用new创建数组而不声明大小
- c++用输入数据创建数组
- 从类 c++ 动态创建数组
- 如何使用 void 函数从类创建数组
- 未知大小的数组作为类成员,用于在运行时(对象创建时间)创建数组的对象
- 如何在不知道Arduino中知道其大小的情况下创建数组和存储值
- 使用动态分配创建数组并将元素插入其中
- 是否可以使用C 函数中的const int参数创建数组
- 如何在C++函数中创建数组
- 使用 ::std::vector 创建数组
- 在编译时以增量方式创建数组
- Numpy C API - 使用 PyArray_Descr 创建数组会导致段错误
- 为什么当我尝试在类中创建数组时"invalid use of non-static data member"我会收到错误?
- 取消引用指针以创建数组的副本
- C++ 在堆上创建数组而不对其进行初始化
- 数组的维度是在创建数组的那一刻确定的,以后不能更改的,这是真的吗?