2017-01-22 71 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

可能值得给出这些例外的例子,或链接到一个列表。 –