В настоящее время я работаю над проектом, в котором требуется около 20 векторов для записи в отдельные файлы. Я также нуждаюсь в том, чтобы мой файл диска STXXL автоматически увеличивался для учета очень больших векторов. Я понимаю, что STXXL обеспечивает функцию авторазрировки для файлов на диске, если вы указываете размер в файле.stxxl равным 0. Я сделал это, но при создании моего первого вектора получаю ошибку ввода-вывода.
Мой файл.stxxl выглядит следующим образом:
disk=c:\stxxl,0,wincall
и я создаю свои векторы следующим образом:
stxxl::wincall_file file("file.dat", stxxl::file::CREAT | stxxl::file::RDWR); stxxl::vector<double, 2, stxxl::lru_pager<8>> vector1(&file, 1000000);
Может ли кто-нибудь помочь мне исправить это?
Благодарю!
Поэтому, чтобы ответить на мой собственный вопрос здесь, я считаю, что проблема заключалась в попытке создать файл на диске непосредственно в корне диска C. Как только я изменил путь в моем файле.stxxl до абсолютного пути от моего каталога пользователя, это не сработало, autogrow и все!