首页 > 解决方案 > 如何制作类似于多维向量的构造函数?

问题描述

对于一个vector类型,我们可以这样做:

vector<vector<int>> v = {{1, 2, 3}, {4, 5, 6}};

我正在尝试对自定义类做同样的事情SomeClass,这样我就可以做到:

SomeClass a = {{1, 2, 3}, {4, 5, 6}}; 

我如何编写构造函数SomeClass来实现这一点?

标签: c++classoopc++17

解决方案


您正在寻找的是std::initializer_list可以在此处找到好的文档

如果您定义SomeClass如下:

template <typename T>
class SomeClass
{
    public:
        SomeClass(std::initializer_list<std::initializer_list<T>> param)
        {
            //...
        }
};

然后你将能够按照你想要的方式构造这个类的一个实例:

SomeClass a {{1, 2, 3}, {4, 5, 6}};

你可以在这里找到一个小例子


推荐阅读