隨着STL的vector類,我可以使用初始化列表(或陣列)項的向量:用數組初始化一個類?
std::vector<int> = { 1, 2, 3 };
是否有可能對我來說,實現這個功能到我自己的課?我正在編寫我自己的Vector類,用於練習實現數據結構並希望這樣做:
MyVectorClass<int> = { 1, 2, 3 };
隨着STL的vector類,我可以使用初始化列表(或陣列)項的向量:用數組初始化一個類?
std::vector<int> = { 1, 2, 3 };
是否有可能對我來說,實現這個功能到我自己的課?我正在編寫我自己的Vector類,用於練習實現數據結構並希望這樣做:
MyVectorClass<int> = { 1, 2, 3 };
是的。使用std::initializer_list。
定義在類的構造函數,需要一個std::initializer_list<T>
:
MyVectorClass(std::initializer_list<T> initializer)
{
for(T& i : initializer)
{
// Do whatever you want with items
}
}
當然。這是C++的設計目標之一,即標準庫可以用語言實現(有一些值得注意的例外)。
你在找什麼叫做std::initializer_list
。這是而不是一個數組!見std::vector
constructor documentation。
可能值得給出這些例外的例子,或鏈接到一個列表。 –
看'的std :: initializer_list'。 –
Jarod42