![]() |
|
Модераторы: bsa |
![]()
|
|
| cristaloleg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 15.6.2009 Где: Donetsk Репутация: нет Всего: нет |
Имеется массив фиксированного размера(можно вектор) типа int, в котором хранятся нули и единицы(произвольная последовательность). Нужно сохранить массив в файл, так чтобы файл имел наименьший размер. Естественно без потерь информации.
ЗЫ желательно использовать fstream. Спасибо. |
|||
|
||||
| TupDub |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 21.11.2009 Репутация: нет Всего: нет |
Записать вектор в файл напрямую не получится, это не POD.
Записать массив в файл не сложно, можно так:
Если в твоём массиве только нули и единицы, самый простой вариант кодировать их как разряды двоичного числа. И потом эти числа уже писать в файл. |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Это не есть правда, так как:
cristaloleg
|
||||
|
|||||
| TupDub |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 21.11.2009 Репутация: нет Всего: нет |
bsa, я ошибся... можно. Только придётся писать и размер вектора отдельно, иначе как узнать, сколько читать.
|
|||
|
||||
| zim22 |
|
||||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
bsa, &*data.begin() и &data.front() - это одно и тоже.
было:
стало:
Это сообщение отредактировал(а) zim22 - 19.1.2010, 18:38 |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Уверен? Я знаю, что &data[0] и &*data.begin() это не одно и тоже...
|
|||
|
||||
| cristaloleg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 15.6.2009 Где: Donetsk Репутация: нет Всего: нет |
||||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
на 100% - нет. но адреса addr1 и addr2 совпадают.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
| cristaloleg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 15.6.2009 Где: Donetsk Репутация: нет Всего: нет |
bsa, во всяком случае требуется делать приведение к char*
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Это примерно тоже самое, что высказывание: Раз все тигры полосатые, то все полосатые - тигры
Короче, я спорить не буду, так как сам точно не уверен в обратном. В принципе, &*data.begin(), &data[0] и &data.front() должны возвращать одно и тоже. Разница только в том, что в случае отладки некоторые из методов могут возвращать прокси-объекты, смысл которых сводится к отлову доступа к несуществующим элементам. У Мейерса (Эффективное использование STL) написано, что нужно пользоваться записью вида &data[0], а тех кто говорит про begin() нужно в баню посылать... Добавлено через 1 минуту и 29 секунд У тебя переменная d точно типа char? Просто нет смысла делать подобное приведение, для указателя на переменную типа char! |
|||
|
||||
| shuttle |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 9.4.2008 Репутация: нет Всего: нет |
--------------------
|
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |