Форум программистов, компьютерный форум CyberForum.ru

Хранение большого количества однотипных данных - C++

Восстановить пароль Регистрация
 
emission
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 6
05.02.2016, 10:22     Хранение большого количества однотипных данных #1
Добрый день.
Подскажите, каким образом хранить данные для программы? Например, у меня имеется 1000 - 300 000 строковых данных, которые мне нужно сравнивать с определёнными вводимыми значениями каждый раз при вызове программы. Где их хранить? Массив, контейнер или отдельный файл (другие варианты, например, таблица БД)? Насколько будет различаться производительность?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
05.02.2016, 10:54     Хранение большого количества однотипных данных #2
Как часто происходит сравнивание?
Ofelion
4 / 4 / 1
Регистрация: 26.01.2015
Сообщений: 85
05.02.2016, 10:57     Хранение большого количества однотипных данных #3
Ну из того, что я знаю, это массив - совокупность однотипных элементов.
emission
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 6
05.02.2016, 11:05  [ТС]     Хранение большого количества однотипных данных #4
Как часто происходит сравнивание?
От 1 до, возможно, нескольких сотен.
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
05.02.2016, 11:12     Хранение большого количества однотипных данных #5
emission,
которые мне нужно сравнивать с определёнными вводимыми значениями каждый раз при вызове программы.
тогда влюбом случае вне программы...думаю что просто в файле будет быстрее чем выдерать из БД.
считываешь файл записываешь в лист или вектор и сравниваешь...
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
05.02.2016, 11:15     Хранение большого количества однотипных данных #6
Цитата Сообщение от emission Посмотреть сообщение
От 1 до, возможно, нескольких сотен.
Интересная частота...
Если не прибегать к хитростям, то просто создай массив указателей на строки.
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
05.02.2016, 11:17     Хранение большого количества однотипных данных #7
castaway, а хранение строковых данных после завершения программы?
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
05.02.2016, 11:18     Хранение большого количества однотипных данных #8
Цитата Сообщение от emission Посмотреть сообщение
которые мне нужно сравнивать с определёнными вводимыми значениями каждый раз при вызове программы.
Давай разберёмся. Один вызов программы - одно сравнение?

Добавлено через 1 минуту
Цитата Сообщение от ThePlague Посмотреть сообщение
castaway, а хранение строковых данных после завершения программы?
Поясните вопрос.
ThePlague
 Аватар для ThePlague
95 / 95 / 59
Регистрация: 30.06.2015
Сообщений: 262
05.02.2016, 11:21     Хранение большого количества однотипных данных #9
castaway, просто как я понял emissionа, ему нужно гдето хранить от 1к до 300к строковых переменых...и каждый раз сравнивать их с входящими данными при вызове программы...(поправте если не так понял)...

или отдельный файл (другие варианты, например, таблица БД)? Насколько будет различаться производительность?
вот тут
emission
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 6
05.02.2016, 11:31  [ТС]     Хранение большого количества однотипных данных #10
Цитата Сообщение от castaway Посмотреть сообщение
Давай разберёмся. Один вызов программы - одно сравнение?
Вызов программы - обязательно одно сравнение, остальные - в вызванной первым сравнением.
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
05.02.2016, 11:33     Хранение большого количества однотипных данных #11
emission, в данной постановке нет смысла в БД. И разницы между массивом, вектором или списком тоже нет. Пробуй. Замеряй время.

Цитата Сообщение от ThePlague Посмотреть сообщение
тогда влюбом случае вне программы...думаю что просто в файле будет быстрее чем выдерать из БД.
Быстрее будет прочитать весь файл за раз.
emission
0 / 0 / 0
Регистрация: 05.02.2016
Сообщений: 6
05.02.2016, 12:56  [ТС]     Хранение большого количества однотипных данных #12
Т.е., из всего вышеописанного получается, что оптимальный вариант - хранить массив строк в отдельном, подключённом к программе, файле? (в данном случае)
castaway
Эксперт С++
4837 / 2976 / 367
Регистрация: 10.11.2010
Сообщений: 11,008
Записей в блоге: 10
Завершенные тесты: 1
05.02.2016, 13:05     Хранение большого количества однотипных данных #13
Цитата Сообщение от emission Посмотреть сообщение
Т.е., из всего вышеописанного получается, что оптимальный вариант - хранить массив строк в отдельном, подключённом к программе, файле?
Загрузи весь файл за раз, или спроецируй, если это позволяет ОС.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2016, 15:42     Хранение большого количества однотипных данных
Еще ссылки по теме:

Наследование static атрибута(хранение количества объектов наследуемых классов) C++
C++ Хранение большого (15000) количества строк в строковом массиве
C++ Хранение большого количества бинарных данных

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,872
05.02.2016, 15:42     Хранение большого количества однотипных данных #14
Имхо, строки должны быть отсортированы и искаться чем-то вроде деления пополам.

Добавлено через 2 минуты
Или делать что-то вроде кэша.
А место хранения - дело десятое. Память позволит - хранить в памяти. Не позволит - в массиве.
Yandex
Объявления
05.02.2016, 15:42     Хранение большого количества однотипных данных
Ответ Создать тему
Опции темы

Текущее время: 03:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru