![]() |
|
Модераторы: bsa |
![]()
|
|
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
Есть задание, отсортировать данные бинарного файла. У самого идей никаких нет, хотелось бы услышать совет/рекомендации :в чем хранить данные и как сортировать?
|
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
данные хранить в файле
сортировать алгоритмами сортировки |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 5 Всего: 59 |
Мой совет: Если файл небольшой - считать его целиком в массив байт, отсортировать и записать в другой файл. Если большой - то для начала много читать про сортировку. |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
. Каждая запись включает автора, название, год издания и количество страниц.
Создать массив структур, записать в него данные, отсортировать и в другой файл. Ничего не упустил? |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
ну и что здесь сложного?
загоните структуры в контейнер примените функцию std::sort запишите отсортированный контейнер в файл |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
эм, не хотел бы показатся навязчивым, но в какой именно контейнер?
я помню делал массив структур, а можно например организовать такой же вектор ? и их уже отсортировать? или нужно использовать list или что-то еще? |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
используйте вектор.
|
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
не работает ! |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
afanp, Что-то вроде этого. Поправь если что.
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
вы создаёте пустой вектор. в нём ноль элементов. а затем с помощью оператора индексирования пытаетесь обращаться к несуществующим элементам вектора. если вы хотите записывать данные в вектор - используйте функцию push_back |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
zim22, da спасибо большое разобрался уже. Тоесть можно передавать данные только через конструктор ?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Не только. К последнему элементу вектора можно получить доступ через метод back, а там хоть что меняй... Можно предварительно создать и настроить структуру, а затем уже сделать push_back для настроенного объекта. |
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
bsa, ам можно поподробнее? что значит настроить стркутуру?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
afanp, это значит присвоить полям структуры требуемые значения, хотя, это работа конструктора.
|
|||
|
||||
| afanp |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 25.11.2008 Репутация: нет Всего: нет |
Приветы передаю еще раз всем вам. У меня вопрос теперь такого плана все о тех же бинарных файлах :
когда я использую write то зачем там нужны * и & ? и еще вот... когда я вывожу while(!fin.eof()) то у меня последний элемент считывается всегда 2 раза о_О Это сообщение отредактировал(а) afanp - 12.3.2009, 20:41 |
|||
|
||||
![]()
|
| Правила форума "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. |