在C ++中声明数组的最佳方法是什么?

时间:2016-02-05 08:08:04

标签: c++ arrays

我很想知道在C ++中使用数组的更好方法是什么?

会不会是:

int array[50];

int x;

cin>> x; //Input a number to initialise the array.

int array[x];

这两个中的哪一个是初始化数组的更好选择?为什么?如果没有,那么还有第三种方式吗?

2 个答案:

答案 0 :(得分:9)

如果需要静态数组(常量项目),请使用std::array

std::array<int,50> a;

如果需要动态数组(非常数的数组),请使用std::vector

std::vector<int> a(50);

在这种情况下,您可以随时通过resizing更改矢量的大小:

a.resize(100);

或仅推送新项目:

a.push_back(5);

详细了解std::vector。它可以为您提供超出您想象的服务。

P.S。你问题的第二个代码是无效的(或者至少它不是标准的)。但是,您可以这样做:

int x;
cin>> x; //Input a number to initialise the array.
std::vector<int> array(x);

答案 1 :(得分:2)

如果您在编译时知道数组的大小,并且它不会改变,那么最好的方法是:

std::array<int, 50> arr;

否则使用

std::vector<int> arr;