2
我試圖做這樣的事情:矢量決定在運行時
int x=128, y=256;
std::vector<std::array<float,x*y>> codes;
這顯然是錯誤的,而這是正確的:
std::vector<std::array<float,128*256>> codes;
一個解決方案第一個問題可能是使用宏,如:
#define x 128
#define y 256
...
std::vector<std::array<float,x*y>> codes;
但我不知道是否有在運行時另一種解決方案和不是編譯時。 注意事項沒有必要使用std::array
,我需要一個std::vector
數組(或其他)x*y
元素。
可能我建議'constexpr'?這樣,如果您嘗試從運行時值中獲取'x'和'y',那麼您將在此時獲得編譯器投訴,而不是在您實例化'codes'時。 – user975989
Voilà,它的工作!謝謝!無論如何,因爲'x'和'y'是用戶在運行時決定的,我們可以在不初始化的情況下聲明它們,並在第二時刻(當用戶插入值,即128和256)時執行它? – justHelloWorld
@ user975989同意'constexpr'在這裏可能更好。手頭沒有新的編譯器來檢查。 – alexeykuzmin0