如何在構造函數中輕鬆初始化數組?例如如何在構造函數中輕鬆初始化數組?
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
{
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