21xrx.com
2024-11-22 10:18:39 Friday
登录
文章检索 我的文章 写文章
C++如何输入未知长度的数组
2023-07-02 11:14:45 深夜i     --     --
C++ 输入 未知长度 数组 动态内存分配

在C++中,有时候需要输入一个未知长度的数组,这种情况可能会让初学者感到困惑。但是,如果掌握了相应的技巧,输入未知长度的数组也非常容易。

在C++中,可以使用vector容器来动态地创建数组。vector是一个STL(标准模板库)容器,它可以自动调整数组的大小,可以添加或删除元素,而不必担心数组被填满或者空洞。

使用vector来创建未知长度的数组非常简单。首先,需要包含vector头文件:


#include <vector>

接下来,定义一个空vector,并使用push_back()方法来动态添加元素:


std::vector<int> arr;

int num;

while (std::cin >> num) {

 arr.push_back(num);

}

代码中的while循环会持续读入输入,如果遇到了数字就将其添加到vector中,直到输入结束。最终,arr就会被填充为一个未知长度的数组。

另一种方式是用动态分配数组的方式实现。动态分配数组是指可以在运行时动态地分配数组的大小,这样可以根据需要分配内存,而不必事先知道数组的大小。使用动态分配数组的方式,可以实现输入未知长度的数组。

动态分配数组的方式需要使用new运算符分配内存,将数组赋值给一个指针变量:


int* arr = new int[size];

代码中的size是需要用户输入的数组大小。这里使用了new运算符在内存堆中动态分配了一个大小为size的int数组,并将它赋值给了arr指针变量。

接下来可以读取输入并将其添加到数组中:


int num, count = 0;

while (std::cin >> num) {

 arr[count++] = num;

}

代码中的while循环会持续读入输入,如果遇到了数字就将其添加到动态分配的数组中,直到输入结束。最终,arr就会被填充为一个未知长度的数组。

使用上述两种方式任何一种都可以实现输入未知长度的数组。但是,需要记住在使用动态分配数组的方式时,要一定要释放内存,否则会导致内存泄漏。


delete[] arr;

代码中的delete[]运算符会释放动态分配的数组占用的内存。如果不释放内存,会一直保留在内存中,造成系统资源的浪费。因此,当不再使用动态分配的数组时,一定要记得释放它。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复