2012-04-11 23 views
0

我需要整數的大3D陣列保存到文件中,並且用C再次裝入++裝載大陣列。 它是256 * 256 * 256 = 16777216整數。保存和在C++

什麼是拯救這個並重新加載的最佳方式?我最感興趣的是快速加載時間。

+0

您應該可以使用多個線程從文件加載(因爲任何數量的閱讀器都可以)。將它們存儲在同一陣列中必須小心謹慎(以免互相干擾)。我會嘗試保存數據,以便使多個線程可行(即換行格式)。 – twain249 2012-04-11 20:41:34

+1

@ twain249我想說的瓶頸是磁盤,將尋求通過移動它在文件中來回時間不會使它更好地太多...只是在說...... – littleadv 2012-04-11 20:44:09

+0

也許看到的問題[如何壓縮一個帶有zlib的緩衝區](http://stackoverflow.com/q/4538586/1084416) – 2012-04-11 20:54:19

回答

8

如果陣列中的連續內存分配(即:你不單獨分配每個維度) - 你可以轉儲整個內存塊到文件。它需要儘可能多的費用,但這是最小的開銷(即:在整個數據塊上調用二進制寫入)。

如果你在一個系統和裝載在另一個上節省,你可能有數據表示的問題,在這種情況下,你可能想要序列化的陣列,並保存在受控物質的每個值。

+0

謝謝!我會盡力實現這一點。有任何可以幫助我的網站引用? – hansdam 2012-04-11 20:49:57

1

您可能感興趣的Boost.Serialization,特別是如果你(1)要在能力上盤容易店這樣的數據,(2)需要一個連貫的方式來保存更復雜的對象,以及(3)想辦法解決這是便攜式。