使用数组初始化类

Initializing a class with an array?

本文关键字:初始化 数组      更新时间:2023-10-16

使用 STL 的向量类,我可以使用项目列表(或数组)初始化向量:

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