Перебор представления Boost multi_array

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


person foxcub    schedule 25.09.2012    source источник


Ответы (1)


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

person burnpanck    schedule 20.05.2015