簡體   English   中英

如何以C ++ 11樣式初始化數組?

[英]How can I initialize array in a C++11 style?

這個答案說C ++ 11具有新功能,使我們可以像這樣初始化“可變大小的數組”:

auto array = new double[M][N]();

但是,當我嘗試執行此操作時,出現以下錯誤:

array size in new-expression must be constant

我沒有忘記在.pro文件中添加-std=c++0x 我測試了C ++ 11的其他功能,並且工作正常。

他錯了嗎? 還是我

謝謝。

C ++沒有運行時大小不受限制的數組。 C ++ 11引入了一項與C VLA遠程相似的功能,但它的功能明顯受限。 不允許在C ++中使用VLA的VLA,這意味着C ++中任何多維數組的第二,第三和更進一步的維必須是常量表達式。

顯然,這是您違反的要求。 您的N不是常數表達式。

無論如何,您的問題的標題都是關於初始化的 ,而實際上,您遇到的問題根本與初始化無關。 您使用的初始化語法- () -對於C ++ 11來說不是新的,它自從最早的語言標准開始就存在於C ++中。

代碼中唯一的C ++ 11功能是上述auto用法。 但這與初始化或數組無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM