如何在不知道数据大小的情况下声明数组? C ++

时间:2016-06-12 18:13:23

标签: c++ arrays

我必须编写一个程序,从用户输入读取一串数字,直到它读为0.例如,如果引入的值是1,2,3,0,那么数组X将包含1,2和3以及数组大小将是3.插入的值的数量没有指定限制,我不能声明任何大小的数组,所以有没有办法动态增加数组的大小,以便能够容纳更多正在阅读的int值?

3 个答案:

答案 0 :(得分:6)

您可以使用std::vector,这是一个可变长度集合,您可以在其中添加元素。它在需要时自动管理重新分配。例如:

std::vector<int> values;
values.push_back(0);
values.push_back(1);
...

答案 1 :(得分:3)

您可以使用std::vector。它会随push_back个元素动态增长。

答案 2 :(得分:2)

它被称为动态内存分配检查另一个问题here

但通常我会使用vector

#include <vector>

using namespace std;
int main(){
   vector<int> v;
   int x;
   while(cin>>x && x != 0){
      v.push_back(x);
   }
}

您应该注意vector类仅通过实现动态内存分配而存在。它只适合你,你不需要做所有的努力工作,比如保留和销毁分配的内存......