使用STL的vector类,我可以使用列表(或数组)中的项来初始化一个向量:
std::vector<int> = { 1, 2, 3 };
我能否将这个功能实现到我的自定义类中呢?我正在编写自己的向量类来练习数据结构的实现,并希望能够实现以下操作:
MyVectorClass<int> = { 1, 2, 3 };
使用STL的vector类,我可以使用列表(或数组)中的项来初始化一个向量:
std::vector<int> = { 1, 2, 3 };
我能否将这个功能实现到我的自定义类中呢?我正在编写自己的向量类来练习数据结构的实现,并希望能够实现以下操作:
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
}
}
std::vector
构造函数文档。
std::initializer_list<int>
。 - Jarod42