| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Vector в файл |
| Автор: VSB 20.8.2012, 23:05 |
| Есть std::vector<SimpleStruct> SimpleStruct - простая структура без выравнивания (точнее, определена через #pragma pack(1)), размером до 32 байт (три немного разых случая). Длина вектора обычно от 50000 до 500000 элементов. Нужно этот вектор записать в файл и потом прочитать его. Как это сделать по-быстрее? |
| Автор: boostcoder 20.8.2012, 23:21 | ||
читать по аналогии. |
| Автор: VSB 21.8.2012, 07:28 |
| boostcoder, то есть никаких хитрых указателей, разных при каждом выполнении программы, в vector нет? |
| Автор: borisbn 21.8.2012, 08:30 |
| > читать по аналогии ну... не совсем. Сначала нужно узнать размер файла, потом разделить на размер типа, затем сделать вектору resize(), а затем уже f.read( &v[ 0 ], ... > то есть никаких хитрых указателей, разных при каждом выполнении программы, в vector нет? Если в векторе хранятся сами структуры, а не указатели, то тебя не должно волновать, что там происходит с памятью от запуска к запуску. Хотя... если и указатели, то тоже не должно. Запись и чтение только будут по-другому |
| Автор: disputant 21.8.2012, 08:34 | ||
Куда важнее, чтоб их не оказалось в SimpleStruct |
| Автор: Randajad 22.8.2012, 00:02 |
| А писать-то в файл вроде как тоже очевидно, тем не менее афтар создал тему. |
| Автор: boostcoder 22.8.2012, 00:34 |
если размышлять так, то и программы писать очевидно. но темы все равно создают. |