Re[8]: загрузить файл в std::string не используя буфер
От: ArtDenis Россия  
Дата: 04.06.04 07:50
Оценка:
Здравствуйте, _Vladimir_, Вы писали:

_V_>Я написал свой тест, он показывает что ситуация с string аналогичная vector<char>.

_V_>В своем тесте я написал несколько вариантов загрузки файла в строку.
_V_>null — пустышка, открывает файл и вычислет его размер (для чистоты эксперимента);
_V_>system — использует функции Window для работы с файлом;
_V_>system shared buffer — то же что и system, только использует общий буфер;
_V_>остальные функции работают с файлом через stl:
_V_>buffer — считывает сторку через буфер;
_V_>string.resize — использует прямую запись в данные string (опасный вариант!);
_V_>string.insert и std::copy — это ваш вариант.

IMHO, std::fstream — не самый быстрый вариант. Например, если писать под MS Windows, то можно сделать класс-обёртку над файлами, проецируемыми в память. К тому-же, если ты не собираешься изменять данные, которые считываешь из файла, то можно сделать обращение к этому классу обёртке как к std::string
... << Rsdn@Home 1.1.4 beta 1 >>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.