实例化数组的方法之间的区别

Difference between the methods of instantiating array

本文关键字:区别 之间 方法 实例化 数组      更新时间:2023-10-16

>假设在一个问题中,我们必须声明一个 n 大小的数组,其中1 <= n <= 1000000000

有两种(可以更多)方法可以做到这一点:

  1. int arr[1000000001];,可以根据输入根据需要处理空间。
  2. 可以先询问用户数组的大小,然后实例化数组:

    辛>>;int arr[n];

我想知道这两种方法的优缺点是什么。

两种方法的区别在于:

第一种方法符合标准,而第二种方法不符合标准。C++标准不允许使用可变长度数组。编译器支持它们作为扩展,但严格意义上的用法不是可移植的。

第一种方法的风险在于,即使不需要,也可能耗尽堆栈空间或浪费内存。在这种情况下,最好的解决方案是使用 std::vector .