Чистый способ инициализировать boost::multi_array реальными элементами ⇐ C++
Чистый способ инициализировать boost::multi_array реальными элементами
Мне нужен чистый синтаксический сахар для инициализации boost::multi_array из явных значений. Лучшее, что я мог придумать, это
двойной g[5][5] = { {-0,0009, 0,003799, 0,00666, 0,00374, 0,00186 }, {-0,0008, 0,0176, 0,0619, 0,0159, 0,00324}, {0,00099, 0,0475, 0,666, 0,0376, 0,00758}, {0,00242, 0,02189, 0,0624, 0,0192, 0,0008}, {0,00182, 0,00404, 0,00479, 0,00924, 0,00189 }}; boost::multi_array_ref mg((double*)g,boost::extents[5][5]); Мне это не нравится, потому что для этого требуется 2 переменные вместо 1, трижды избыточное определение размеров [5][5] (размер можно определить по спискам вложенных фигурных скобок), и преобразование double[][] в double*.
Мне нравится тот факт, что не выполняется копирование из g в mg, а способ инициализации g приятный глазу (т.е. вложенные, структурированные списки инициализаторов с минимумом лишних символов).
Мне нужен чистый синтаксический сахар для инициализации boost::multi_array из явных значений. Лучшее, что я мог придумать, это
двойной g[5][5] = { {-0,0009, 0,003799, 0,00666, 0,00374, 0,00186 }, {-0,0008, 0,0176, 0,0619, 0,0159, 0,00324}, {0,00099, 0,0475, 0,666, 0,0376, 0,00758}, {0,00242, 0,02189, 0,0624, 0,0192, 0,0008}, {0,00182, 0,00404, 0,00479, 0,00924, 0,00189 }}; boost::multi_array_ref mg((double*)g,boost::extents[5][5]); Мне это не нравится, потому что для этого требуется 2 переменные вместо 1, трижды избыточное определение размеров [5][5] (размер можно определить по спискам вложенных фигурных скобок), и преобразование double[][] в double*.
Мне нравится тот факт, что не выполняется копирование из g в mg, а способ инициализации g приятный глазу (т.е. вложенные, структурированные списки инициализаторов с минимумом лишних символов).
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли способ узнать, являются ли это реальными весами? [дублировать]
Anonymous » » в форуме Python - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-