std::array too many initializers
-
typedef std::array<std::array<int, 3>, 5> array2d; array2d arr = {{2,7,5}, {3,1,1}, {2,1,-7}, {0,2,1}, {1,6,8}};
line 2...too many initializers!
was ist da falsch?
-
Es entspricht zwar streng genommen nicht dem Standard, aber in den üblichen Implementierungen von std::array brauchst du doppelte geschweifte Klammern:
array2d arr = {{{{2,7,5}}, {{3,1,1}}, {{2,1,-7}}, {{0,2,1}}, {{1,6,8}}}};
-
array2d arr = {{{2,7,5}, {3,1,1}, {2,1,-7}, {0,2,1}, {1,6,8}}};
edit: SeppJ war schneller. Und ueberall doppelte Klammern ist wohl auch konsistenter.
-
oder auch nur ein klammernpaar: http://ideone.com/Nh5IUV
#include <array> typedef std::array<std::array<int, 3>, 5> array2d; int main() { array2d arr = {2,7,5, 3,1,1, 2,1,-7, 0,2,1, 1,6,8}; }