用一个数组初始化一个类?

3

使用STL的vector类,我可以使用列表(或数组)中的项来初始化一个向量:

std::vector<int> = { 1, 2, 3 };

我能否将这个功能实现到我的自定义类中呢?我正在编写自己的向量类来练习数据结构的实现,并希望能够实现以下操作:

MyVectorClass<int> = { 1, 2, 3 };

2
看看 std::initializer_list<int> - Jarod42
2个回答

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构造函数文档

也许值得举个例子来说明这些异常情况,或者提供一个列表的链接。 - anon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接