|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.09.2013, 13:08 | #21 | |||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Прочитай ещё раз внимательно. Обрати внимание на это: Распечатка в алфавитном порядке абонентов из заданного диапазона номеров или фамилий; например, для номеров диапазон может быть: 222222 - 333333, а для фамилий: Иванаускас - Иванов (то есть Иванова в диапазон не входит). Ну поэтому я и написал выше: в реальной задачи потребуются мапы для каждого столбца: имя_столбца -- запись. Для задачи, где нужно выбирать по фамилиям и номера получается: фамилия - запись номер - запись Это два multimap связанные через значение "запись". Цитата:
Тебе в любом случае понадобится делать карту на каждый столбец, по которому ты захочешь выбирать. Карта по дефолту замечательно умеет сортировать и символьные и числовые ключи. Зачем создавать ещё какую то непонятную структуру, да ещё перегружая операторы сравнения? Цитата:
Осталось только продемонстрировать на деле выборку: по фамилиям и диапазону номеров Последний раз редактировалось _Bers; 08.09.2013 в 13:17. |
|||
08.09.2013, 17:33 | #22 | |||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Цитата:
Цитата:
|
|||
08.09.2013, 18:39 | #23 | |||
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Цитата:
но даже если трактовать как "или", все равно потребуется две мультимапы: одна на фамилии, другая на номера. Единственное упрощение для фамилий здесь заключается только в том, что вместо поиска ключей содержащих подстроку, можно просто сразу же запросить всех однофамильцев по ключу мультимапа: http://www.cplusplus.com/reference/m...p/equal_range/ Но одной картой обойтись все равно не получится. Если хочется одинаково быстро искать и диапазоны номеров, и однофамильцев. Цитата:
Например, я у себя на работе сделал вот такой fronted: Есть механизм Table. Который реализует бизнес-логику работы с таблицей. Такую как добавление столбцов, добавление записей, выборки и тп. От него наследуется конкретная таблица, которая создает конкретные столбцы, заполняет их некоторыми первичными данными (это нужно для юнит тестов). Можно и не наследоваться, а использовать Table напрямую, но если всяких разных таблиц паредполагается множество - то наследование улучшает читабельность и структуру кода. Ну и собственно, именно конкретная таблица интерпритирует значение содержимого своей таблицы. А работа с конкретной таблицей больше похожа на декларативный стиль, нежели императивный. Код:
Либо в режиме "он-лайн": таблица на самом деле связана с реальной базой данных. В моем случае это postgres, и всякого рода выборки из этой реальной базы осуществляется на самом деле средствами самого postgres, а сама таблица на самом деле лишь конвертирует sql-подобный синтаксис собственный в sql с которым работает postgres. Можно создавать любые таблицы аля "телефонная книга". Добавлять/удалять/делать выборку. С любым количеством столбцов или строк. Последний раз редактировалось _Bers; 08.09.2013 в 21:39. |
|||
09.09.2013, 06:57 | #24 | |||||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|||||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Телефонный справочник | Денис999 | Помощь студентам | 2 | 26.02.2011 18:41 |
Телефонный справочник | vladxxl | Общие вопросы C/C++ | 1 | 15.12.2010 20:28 |
Телефонный справочник | schtefan | Фриланс | 8 | 16.11.2010 21:53 |
Телефонный справочник | Krechet | Софт | 5 | 10.08.2009 15:51 |
Телефонный справочник на TC | Qai | Фриланс | 5 | 25.05.2008 01:02 |