我有一个代码如下:
int n;
int get_the_number();
void some_computations();
int main()
{
n = get_the_number();
some_computations()
return(0);
}
该
get_the_number
函数获取一些输入并返回整数n
,在其调用后将不会被修改。在
some_computation
函数中有以下代码std::vector<my_struct> my_array; for(int i=0; i<n; i++) { my_struct struct_temp; // fill struct_temp; my_array.push_back(struct_temp); }
问题:由于 的大小my_array
是先验已知的,是否可以将 替换std::vector
为std::array
?此外,在肯定的情况下,我是否应该期望在效率方面有所提高?
我试图用
std::array<my_struct,n> my_array;
但我得到一个错误:数组的大小必须是常数。有没有办法避免它?
非常感谢你。