Как лучше всего заполнить boost::multi_array из списка инициализаторов?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Как лучше всего заполнить boost::multi_array из списка инициализаторов?

Сообщение Гость »


Я хотел бы инициализировать boost::multi_array встроенным в какой-нибудь код. Но я не думаю, что boost::multi_array поддерживает инициализацию из списка инициализаторов. Вот что у меня есть на данный момент:

// Сначала создаем примитивный массив, который можно инициализировать напрямую uint8_t field_primitive[4][8] = { { 1,1,1,1,1,1,1,1 }, { 1,2,1,2,1,2,1,2 }, { 1,1,2,2,2,2,2,2 }, { 1,2,2,2,2,2,2,2 } }; // Создаем boost::multi_array, который я действительно хочу использовать поле boost::multi_array (boost::extents[4][8]); // Компактный, но неприятный подход к копированию содержимого примитивного массива в multi_array. memcpy(field.data(), field_primitive, field.num_elements() * sizeof(uint8_t)); Мне нравится, что я могу компактно выразить содержимое матрицы, используя список инициализаторов фигурных скобок. Но мне не нравится «memcpy», и мне не нравится использование одноразового примитивного массива. Есть ли более удобный способ заполнить мой boost::multi_array из читаемого встроенного набора значений в коде?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»