Поиск по нескольким ключам, handler2006, 28-Фев-12, 16:58 [смотреть все]Здравствуйте! Имеем: массив структур, состоящих из нескольких полей (или просто таблица). Задача: Выбрать первую удовлетворяющую условиям поиска записью Поиск осуществляется сразу по нескольким полям. Все, что я нашел пока - это boost::multi_index_container, но он не позволяет делать выборку за дин раз - придется делать столько проходов, сколько критериев поиска Спасибо. Алексей
|
- Поиск по нескольким ключам, pavlinux, 22:42 , 02-Мрт-12 (1)
> Задача: Выбрать первую удовлетворяющую условиям поиска записью Можно я, можно я,... Для того, чтоб выбрать первую удовлетворяющую условиям поиска записью, нужно выбрать первую удовлетворяющую условиям поиска записью.
- Поиск по нескольким ключам, handler2006, 12:44 , 03-Мрт-12 (2)
Как вариант мне предложили использовать хеш полей - тогда поиск сводится к проверке только значения хеша записи.Мне же, с моим слабоумием, вообще сложно что-то представлять да и не за чем - задача сводится лишь к тому чтобы обойтись одной простой строчкой кода, неважно, какого рода и объема код она сгенерирует
- Поиск по нескольким ключам, pavlinux, 00:58 , 05-Мрт-12 (3)
> Как вариант мне предложили использовать хеш полей - тогда поиск сводится к > проверке только значения хеша записи.Например матрица 100x100, для комбинации из 2-х элементов будет иметь 1000000 хэшей. :)
- Поиск по нескольким ключам, handler2006, 10:37 , 05-Мрт-12 (4)
Вы меня немного неправильно поняли. Возможно я не совсем корректно употребил термин "хеш" в данном случае. Имеется ввиду хранить сумму значений полей каждой записи, тогда достаточно будет только просуммировать (особым образом) поля записи и сравнить их с искомым
- Поиск по нескольким ключам, pavlinux, 23:15 , 05-Мрт-12 (5)
> Вы меня немного неправильно поняли. > Возможно я не совсем корректно употребил термин "хеш" в данном случае. > Имеется ввиду хранить сумму значений полей каждой записи, тогда достаточно будет > только просуммировать (особым образом) поля записи и сравнить их с искомым 1+2+3+4+5+6+7+8+9 = 45 5+5+5+5+1+5+5+5+4 = 45 ... Так можно хранить только числа Фибоначчи, ибо разложение итоговой суммы, в примере 45, на эти числа единично, т.е. уникально. 2+5+7+12+19 = 45 ---- Короче не заморачивайся, хэш - правильный выход.
- Поиск по нескольким ключам, handler2006, 12:38 , 06-Мрт-12 (6)
>> только просуммировать (особым образом) поля записи и сравнить их с искомым Ключевое слово в скобках
|