如何在C++中实现动态数组?

Sou*_*kil 3 c++

在创建数组时,编译器必须知道它的大小吗?例如,以下代码段无法编译.

class A
{
   int n;
   int arr[n];
};  
Run Code Online (Sandbox Code Playgroud)

但是,以下编译.

int main()
{
  int n;

  std::cin >> n;
  int arr[n];
}
Run Code Online (Sandbox Code Playgroud)

为什么?

Oli*_*rth 5

标准C++不支持可变长度数组.1

如果你想要这种行为,我建议使用一个std::vector而不是原始的C风格的数组.


1.但是,您可以在C99或非标准语言扩展中找到它们.