我的問題與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. 初始化回調函數
- 3. 函數調用或構造函數調用中的C++數組初始化
- 4. 使用rand()函數初始化數組
- 5. 在一個函數初始化數組
- 6. 使用init_seg調用初始化函數
- 7. 使用自調用函數進行數組初始化
- 8. 調用構造函數並初始化
- 9. 只有一個構造函數調用的數組初始化
- 10. 初始化CString的數組的函數調用內部
- 11. 用數組或初始化初始化一個NSMutableArray初始化
- 12. 初始化函數
- 13. 初始化數組時初始化System.AccessViolationException
- 14. 在函數中使用時初始化數組?
- 15. 數組初始化
- 16. 數組初始化
- 17. 初始化數組
- 18. 數組初始化
- 19. 初始化在定義與初始化在構造函數中
- 20. 在函數中初始化,並沒有在主要初始化
- 21. 初始化C++構造函數的初始化列表中的char數組
- 22. 初始化數組在VBA
- 23. 正在初始化數組
- 24. 使用函數構造函數初始化調用
- 25. 無法在初始化函數1.0.0rc中查看初始化函數
- 26. 如何調用初始化數組長度的數組構造函數?
- 27. std ::數組初始化列表在初始化列表中初始化
- 28. Javascript - 從函數內調用/初始化函數
- 29. 調用一個函數內的函數來初始化
- 30. 在構造函數中初始化數組或向量
用詞重試。 –
你的意思是「用詞」,我的問題是不可理解的,或者不知何故? – Sim
這是100%美味模糊。 –