如何在构造函数中轻松初始化数组?
如何在构造函数中轻松初始化数组?例如如何在构造函数中轻松初始化数组?
class A
{
array<array<int, 2>, 2> m;
A(int m00, int m01, int m10, int m11)
: m {m00, m01, m10, m11} // ??? how to list here
{}
};
class A
{
std::array<std::array<int, 2>, 2> m;
A(int m00, int m01, int m10, int m11)
: m {{{m00, m01}, {m10, m11}}}
{}
};
我直观地理解了内部数组的'{m00,m01}'和外部的{{...},{...}}',但为什么需要最外层的大括号? – user2079303
我认为答案是正确的。但为什么需要3对'{}'?如果是'vector
@ user1899020简而言之,因为'array'是一个聚集。由于内部类型本身就是一个聚合,所以实际上可以删除所有大括号,除了外部大括号:'m {m00,m01,m10,m11}' –
它的工作原理是,如果你确定变量错别字。 – user975989