2012-09-25 77 views
1

有沒有辦法將視圖的所有元素迭代到Boost multi_array?很明顯,如何迭代Boost multi_array;即超出範圍[array.data(), array.data() + array.num_elements())。但是,如果我在這個數組中創建一個視圖(切出數組的一部分),顯然使用指針的連續訪問將是不可能的:視圖不會對應任何連續的內存塊。 Boost是否提供了一個處理這個問題的機制,還是我需要手動實現解決方案?遍歷Boost多視圖視圖

回答

0

幸運的是,multi_array概念不需要任何連續的內存塊。參考實現爲每個維度存儲一個步幅的事實提供了足夠的信息來正確地遍歷視圖。實際上,multi_array概念要求返回的視圖像標準容器一樣可迭代。