在不知道个数的时候怎么不用vector输入数组
时间: 2024-03-07 19:48:36 浏览: 60
除了使用vector来输入数组外,还可以使用动态内存分配和指针来实现动态数组。具体实现方法如下:
```c++
#include <iostream>
using namespace std;
int main() {
int *arr = nullptr; // 定义一个空指针
int n = 0; // 数组元素个数
int x;
while (cin >> x) { // 循环输入元素
n++; // 数组元素个数加1
arr = (int*)realloc(arr, n * sizeof(int)); // 分配动态内存
arr[n-1] = x; // 将新输入的元素添加到数组末尾
}
// 输出数组
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
free(arr); // 释放动态内存
return 0;
}
```
在上述代码中,使用while循环输入元素,如果输入结束,则跳出循环。然后定义一个空指针arr和数组元素个数n,每输入一个元素,就将数组元素个数加1,并使用realloc函数动态分配内存。然后将新输入的元素添加到数组末尾。最后使用for循环遍历数组中的元素,并输出到屏幕上。最后使用free函数释放动态内存。
相关问题
怎么在不知道个数的时候输入数组
在不知道元素个数的情况下,可以使用动态数组来输入数组。在C++中,可以使用std::vector来实现动态数组。可以先定义一个空的vector,然后使用push_back()函数将元素逐一添加到vector中,直到输入结束。例如,以下代码可以输入一个整型数组:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr; // 定义一个空的vector
int x;
while (cin >> x) { // 循环输入元素
arr.push_back(x); // 添加元素到vector中
}
// 输出数组
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在上述代码中,使用while循环输入元素,如果输入结束,则跳出循环。然后使用for循环遍历vector中的元素,并输出到屏幕上。
vector动态数组输入输出
vector动态数组的输入输出可以使用for循环遍历数组中的元素,然后使用cout输出每个元素。也可以使用迭代器iterator来遍历数组中的元素,使用*iterator输出每个元素。输入时可以使用push_back()函数向数组末尾添加元素,也可以使用insert()函数在指定位置插入元素。另外,可以使用resize()函数改变数组的大小。下面是一个简单的示例代码:
代码示例:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> myVector;
int num;
// 输入
cout << "请输入一些整数,以-1结束:" << endl;
cin >> num;
while (num != -1) {
myVector.push_back(num);
cin >> num;
}
// 输出
cout << "数组中的元素为:" << endl;
for (int i = 0; i < myVector.size(); i++) {
cout << myVector[i] << " ";
}
cout << endl;
return 0;
}
阅读全文