我有一个代码如下:与性病``替换的std :: VECTOR` :: array`
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;
更换载体的声明,但是我得到一个错误:数组的大小必须是恒定的。 有没有办法避免它?
非常感谢。
看起来像我不够快输入。 :) –
非常感谢您的快速和明确的答案。我以前不知道constexpr:我有很多东西要学习! – 888