Итерация по представлению Boost multi_array

Есть ли способ перебрать все элементы представления в Boost? multi_array? Понятно, как перебрать Boost multi_array; а именно, пройти через диапазон [array.data(), array.data() + array.num_elements()), Но если я создам представление в этом массиве (которое вырезает некоторое подмножество массива), очевидно, что непрерывный доступ с использованием указателей будет невозможен: представление не будет соответствовать ни одному непрерывному блоку памяти. Предоставляет ли Boost механизм для решения этой проблемы или мне нужно реализовать решение вручную?

1

Решение

К счастью, концепция multi_array не требует какого-либо непрерывного блока памяти. Тот факт, что эталонная реализация хранит шаг для каждого измерения, дает достаточно информации для правильной итерации по представлению. Фактически, концепция multi_array требует, чтобы возвращаемое представление было итеративным, как стандартный контейнер.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]