简体   繁体   English

如何让我的数组 class 实例使用初始化列表来初始化数组

[英]How can I get my array class instance to use initializer list to initialize the array

I am trying to write an array class similar to the one in standard lib for practice.我正在尝试编写一个类似于标准库中的数组 class 以进行练习。 I want to be able to initialize my array class by using an initializer list, but I don't what code to add to my class to do that.我希望能够通过使用初始化列表来初始化我的数组 class,但我没有添加到我的 class 的代码来执行此操作。 I am confused because there are multiple elements in the initializer list but only container to hold the data.我很困惑,因为初始化列表中有多个元素,但只有容器来保存数据。

#include <iostream>

template<typename T, int size>
class Array
{
private:
    T data[size];

public:
    Array() {};
};

int main()
{
    //I want to do this but it currently doesn't allow me to do this.
    //I need someone to tell me what i need to add to my class to be able
    //to do this
    //Aarray<int, 5> a{1, 2, 3, 4, 5}; 

    //The above line should do
    //a.data[0] = 1;
    //a.data[1] = 2;
    //a.data[2] = 3;
    //a.data[3] = 4;
    //a.data[4] = 5;
}

There are several ways有几种方法

  • make your class aggregate:使您的 class 聚合:

     template<typename T, int size> class Array { public: T data[size]; };
  • Provide constructor which accept {..} such as提供接受{..}的构造函数,例如

template<typename T, int size>
class Array
{
private:
    T data[size];

public:
    Array(const T (&data)[size]);
    //Array(std::initializer_list<T> ini);

    // ...
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在初始化列表中初始化普通数组成员变量? - How can I initialize normal array member variable in initializer list? 如何使用 initializer_list 初始化成员数组? - How do I initialize a member array with an initializer_list? 如何在成员初始值设定项列表中初始化数组 - How to initialize an array in the member initializer list 如何使用初始化列表初始化数组元素? - How to initialize array elements by using initializer list? 我可以使用 std::initializer_list 而不是大括号封闭的初始化程序来初始化数组吗? - Can I initialize an array using the std::initializer_list instead of brace-enclosed initializer? 如何使用成员初始化列表初始化数组? - How can i use member initialization list to initialize an array? 如何在类的初始化列表中初始化 std::array 而不对数组的大小进行硬编码 - How to initialize an std::array in the initializer list of a class without hardcoding the array's size 我想在组合/整体 class 的成员初始化程序列表中初始化一个“部分”数组 class - I want to initialize an array of "part" class in member initializer list of composed/whole class 从构造函数参数初始化类初始化列表中的const多维数组 - Initialize const multidimensional array in class initializer list from constructor arguments 如何使用initializer_list列表初始化具有自定义类的地图 - How to use initializer_list list to initialize a map with customized class
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM