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

How do I declare an array without knowing its size? C++

本文关键字:数组 情况下 声明 C++ 不知道      更新时间:2023-10-16

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

您可以使用

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

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

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

但通常我会使用向量

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

您应该注意,vector类仅通过实现动态内存分配而存在。它只是为您服务,您无需做所有艰苦的工作,例如保留和销毁分配的内存......

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

相关文章: