Posiadam Qt z MinGW 32-bit na Windows XP 32bit, na laptopie to samo na Windows 7 64 bit.
Czy w C++ istnieje coś takiego, jakaś struktura, biblioteka, która umożliwia losowy dostęp do pliku tak, że jest on widziany jako tablica? Chodzi mi o to, że robię wektor intów, w których każdy element ma 4 bajty, a tych elementów ma być ok. 1giga. Dla małych tablic, kilkaset milionów elementów to da radę, dla większych, to fakt, że program jest 32-bitowy nie pozwoli utworzyć gigantycznej tablicy. Na potrzeby pewnych prób chciałbym przerobić program tak, że tablica pozostanie tablicą, ale w tle dane będą w pliku, a nie w pamięci operacyjnej, ewentualnie będzie jakiś mały bufor dla poprawy wydajności. W momencie zniszczenia obiektu bufor byłby zapisywany do pliku i w tym pliku byłaby zawartość tego wektora. Szczegóły techniczne dotyczące wymiany danych między RAM a plikiem nie są istotne. Chodzi tylko o to, że jak napiszę "X = Tablica[3]", to uzyskam 3 element z pliku, a jak napiszę "Tablica[5] = X", to zostanie zapisany 5 element pliku. Dla int to będą odpowiednio bajty 12-15 i 20-23, a dla char będą to odpowiednio bajty 3 i 5, bo char zajmuje jeden bajt.
Słyszałem, że WinApi coś takigo udostępnia. Jak się nazywa ta klasa i jak jej użyć? Czy Qt coś takiego udostępnia?
Czy w Qt/MinGW32 da się zmusić kompilator do skompilowania do 64-bit, wtedy jak na laptopie zrobię plik wymiany 20GB, to wciągnięcie całego pliku o wielkości 5GB do zwykłej tablicy lub wektora nie będzie problemem.
Sam próbowałem coś takiego utworzyć, coś nawet z tego wyszło, jeszcze nie do końca dobrze to działa, musiałbym poprawić, ale z drugiej strony nie ma sensu wynajdywać koła od nowa.
Jeżeli w C++ się nie da, to czy da się to samo w C#/.NET 4.0 lub ewentualnie w Javie 7?