随着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