我的問題與C++ 11標準和this old question的發佈有關,因爲我想知道現在是否可以在函數調用中創建數組/矢量,而不是構建數組/向量之前,然後只是將它作爲方法/函數的參數。在函數調用中初始化數組
-4
A
回答
2
(假設你在談論C++ 11)
void f(int x[]) {} // remember, same as void f(int* x) {}
int main() { f({0,1,2}); }
// error: cannot convert '<brace-enclosed initializer list>'
// to 'int*' for argument '1' to 'void f(int*)'
但是:
void f(const int (&x)[3]) {}
int main() { f({0,1,2}); }
// <no output>
和:
void f(std::array<int, 3> x) {}
int main() { f({0,1,2}); }
// <no output>
而且,順便說一句:
void f(std::vector<int> x) {}
int main() { f({0,1,2}); }
// <no output>
所以基本上是,但有注意事項。
+1
另一個警告:很少有編譯器實際上支持這個。據我所知,只有GCC。 –
+1
事實上,鏗鏘3.0不太滿意它。不過,我在這裏談論的是這個語言,而不是一些實現;並最終他們_都會支持它! –
相關問題
- 1. 初始化回調函數
- 2. 函數調用或構造函數調用中的C++數組初始化
- 3. 使用init_seg調用初始化函數
- 4. 調用構造函數並初始化
- 5. 只有一個構造函數調用的數組初始化
- 6. 初始化數組時初始化System.AccessViolationException
- 7. 數組初始化
- 8. 數組初始化
- 9. 無法在初始化函數1.0.0rc中查看初始化函數
- 10. std ::數組初始化列表在初始化列表中初始化
- 11. Javascript - 從函數內調用/初始化函數
- 12. 正在初始化構造函數中的數組(Java)
- 13. 在子函數中分配和初始化結構數組
- 14. 在構造函數中初始化數組
- 15. 如何在構造函數中初始化數組?
- 16. 在構造函數的初始化列表中的數組
- 17. 數組如何在構造函數中初始化?
- 18. C - 在函數中初始化全局數組
- 19. 如何在構造函數中輕鬆初始化數組?
- 20. 在javascript中初始化一個函數
- 21. 在函數內初始化2D數組,通過指針調用。分段錯誤
- 22. (函數(){})()聲明/初始化JavaScript函數
- 23. jquery初始化函數
- 24. 的JavaScript函數初始化
- 25. 陣列初始化函數
- 26. Python類初始化函數
- 27. 初始化函數指針
- 28. 在Python中初始化二維數組
- 29. 在一行中初始化Java數組
- 30. 在plpgsql中初始化多維數組
用詞重試。 –
你的意思是「用詞」,我的問題是不可理解的,或者不知何故? – Sim
這是100%美味模糊。 –