我有一個代碼如下:與性病``替換的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