我很想知道在C ++中使用数组的更好方法是什么?
会不会是:
int array[50];
或
int x;
cin>> x; //Input a number to initialise the array.
int array[x];
这两个中的哪一个是初始化数组的更好选择?为什么?如果没有,那么还有第三种方式吗?
答案 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;