سلام
گاهی اوقات حجم آرایه اونقدر زیاده که توی حافظه جا نمیشه که برای همین از فضای هارد دیسک به عنوان حافظه استفاده میشه
برنامه حاضر که اصلش از کتابخانه ff نرم افزار R بود:
http://cran.r-project.org/package=ff
برای کار با آرایه های حجیم و سنگین هست کمی روش کار کردم و بعضی چیزها را بهش اضافه کردم
از روش memory mapped file استفاده کرده توی ویندوز با ++g با دستور زیر برنامه testBig کامپایل میشه
g++ -std=C++11 -O2 testBig.cpp Win32FileMapping.cpp utk_file_allocate_fseek.cpp FSInfo_win32.cpp -o testBig.exe
فکر کنم در سیستم عامل های دیگه هم میشه استفاده کرد
هنوز جای کار داره مثلا چک کردن خطاها و افزودن استثنا و..
طرز استفاده هم توی فایل testBig.cpp اومده
#include "Array.hpp"
#include <iostream>
int main()
{
ff::Array<int> mat3("D:\\test.bin",{2,3,5});
mat3[1][2][3] = 4;
std::cout << mat3[1][2][3];
}
یک آرایه سه بعدی به ابعاد 2 و 3 و 5 درست می کنیم و عنصر با اندیس 1 و 2 و 3 را مقدار گذاری کرده و یا مقدار آن را چاپ می کنیم