Есть ли способ перебрать все элементы представления в Boost multi_array
? Понятно, как перебирать Boost multi_array
; а именно, пройти через диапазон [array.data(), array.data() + array.num_elements())
. Но если я создам в этом массиве представление (которое вырезает какое-то подмножество массива), очевидно, непрерывный доступ по указателям будет невозможен: представление не будет соответствовать какому-либо непрерывному блоку памяти. Предоставляет ли Boost механизм для решения этой проблемы или мне нужно реализовать решение вручную?
Перебор представления Boost multi_array
Ответы (1)
К счастью, концепция multi_array не требует непрерывного блока памяти. Тот факт, что эталонная реализация хранит шаг для каждого измерения, дает достаточно информации для правильной итерации по представлению. На самом деле концепция multi_array требует, чтобы возвращаемое представление было итерируемым, как стандартный контейнер.
person
burnpanck
schedule
20.05.2015