Здравствуйте!
Имеем: массив структур, состоящих из нескольких полей (или просто таблица).
Задача: Выбрать первую удовлетворяющую условиям поиска записью Поиск осуществляется сразу по нескольким полям.
Все, что я нашел пока - это boost::multi_index_container, но он не позволяет делать выборку за дин раз - придется делать столько проходов, сколько критериев поиска
Спасибо.
Алексей
> Задача: Выбрать первую удовлетворяющую условиям поиска записьюМожно я, можно я,...
Для того, чтоб выбрать первую удовлетворяющую условиям поиска записью,
нужно выбрать первую удовлетворяющую условиям поиска записью.
Как вариант мне предложили использовать хеш полей - тогда поиск сводится к проверке только значения хеша записи.Мне же, с моим слабоумием, вообще сложно что-то представлять да и не за чем - задача сводится лишь к тому чтобы обойтись одной простой строчкой кода, неважно, какого рода и объема код она сгенерирует
> Как вариант мне предложили использовать хеш полей - тогда поиск сводится к
> проверке только значения хеша записи.Например матрица 100x100, для комбинации из 2-х элементов будет иметь 1000000 хэшей. :)
Вы меня немного неправильно поняли.
Возможно я не совсем корректно употребил термин "хеш" в данном случае.
Имеется ввиду хранить сумму значений полей каждой записи, тогда достаточно будет только просуммировать (особым образом) поля записи и сравнить их с искомым
> Вы меня немного неправильно поняли.
> Возможно я не совсем корректно употребил термин "хеш" в данном случае.
> Имеется ввиду хранить сумму значений полей каждой записи, тогда достаточно будет
> только просуммировать (особым образом) поля записи и сравнить их с искомым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
----
Короче не заморачивайся, хэш - правильный выход.
>> только просуммировать (особым образом) поля записи и сравнить их с искомымКлючевое слово в скобках