Как правильно записать большой вектор в файл?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как правильно записать большой вектор в файл?

Сообщение Anonymous »

Я хочу сохранить рассчитанный вектор данных в файл, чтобы можно было загрузить его позже, избегая необходимости пересчитывать его каждый раз при запуске программы.
Проблема в том, что это отлично работает с относительно небольшими наборами данных — например, с вектором из 1 миллиона элементов, — но когда я пытаюсь использовать полный набор данных из 32 миллионов элементов, программа зависает. Мне приходится принудительно закрыть его, чтобы получить сохраненный файл, но тогда он содержит правильный объем данных (2,304 ГБ, поскольку каждый элемент имеет размер 72 байта). Итак, я не знаю, почему программа не работает, и мне приходится принудительно закрывать ее, чтобы получить файл. Он просто не достигает outFile.close();.
// Function to save a vector of DataArray to a binary file
void saveDataToFile(const std::vector& data, const std::string& filePath)
{
std::ofstream outFile(filePath, std::ios::binary);
if (!outFile.is_open())
{
std::cerr

Подробнее здесь: https://stackoverflow.com/questions/792 ... -correctly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»