2017-01-22 66 views
3

隨着STL的vector類,我可以使用初始化列表(或陣列)項的向量:用數組初始化一個類?

std::vector<int> = { 1, 2, 3 }; 

是否有可能對我來說,實現這個功能到我自己的課?我正在編寫我自己的Vector類,用於練習實現數據結構並希望這樣做:

MyVectorClass<int> = { 1, 2, 3 }; 
+2

看'的std :: initializer_list '。 – Jarod42

回答

5

是的。使用std::initializer_list

定義在類的構造函數,需要一個std::initializer_list<T>

MyVectorClass(std::initializer_list<T> initializer) 
{ 
    for(T& i : initializer) 
    { 
     // Do whatever you want with items 
    } 
} 
3

當然。這是C++的設計目標之一,即標準庫可以用語言實現(有一些值得注意的例外)。

你在找什麼叫做std::initializer_list。這是而不是一個數組!見std::vector constructor documentation

+0

可能值得給出這些例外的例子,或鏈接到一個列表。 –