2016-06-09 6 views

Antwort

3
class A 
{ 
    std::array<std::array<int, 2>, 2> m; 
    A(int m00, int m01, int m10, int m11) 
     : m {{{m00, m01}, {m10, m11}}} 
    {} 
}; 
+0

Ich verstehe intuitiv '{m00, m01}' für inneres Array und '{{...}, {...}}' für äußeres, aber warum werden die äußersten Klammern benötigt? – user2079303

+0

Ich denke, die Antwort ist richtig. aber warum brauchen 3 Paare von '{}'? Wenn es 'vector >' ist, brauchen Sie auch 3 Sätze? – user1899020

+0

@ user1899020 Kurz gesagt, weil 'array' ein Aggregat ist. Da der innere Typ selbst ein Aggregat ist, können Sie tatsächlich alle Klammern außer den äußeren ablegen: 'm {m00, m01, m10, m11}' –