使用STL的矢量类,我可以使用项目列表(或数组)初始化矢量:
std::vector<int> = { 1, 2, 3 };
我可以将此功能实现到我自己的类中吗?我正在编写自己的Vector类来实践数据结构,并希望这样做:
MyVectorClass<int> = { 1, 2, 3 };
答案 0 :(得分:5)
在类中定义一个带有std::initializer_list<T>
的构造函数:
MyVectorClass(std::initializer_list<T> initializer)
{
for(T& i : initializer)
{
// Do whatever you want with items
}
}
答案 1 :(得分:3)
当然。它是C ++的设计目标之一,标准库可以用语言实现(除了一些值得注意的例外)。
您要找的是std::initializer_list
。这是不是一个数组!请参阅std::vector
constructor documentation。