![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
Добрый день!
Задача: проверить значение контейнера на попадание в заданный интервал; Решение: воспользоваться стандартными std::less & std::greater. В итоге имеем код:
Недостатки решения: требуется два прохода по контейнеру; Вопрос: Как используя СТАНДАРТНЫЕ (написание функтора не предлагать) средства, проверить попадание значений элементов контейнера в заданный интервал, исключая повторный проход? Заранее благодарен за ответы. Это сообщение отредактировал(а) np9mi7 - 5.3.2006, 16:06 |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Не совсем "въехал" в вопрос
|
|||
|
||||
| np9mi7 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
|
||||
|
|||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Так найди min и max значение в контейнере и сравни с интервалом.
Если min и max попадают [1, 10], то и сам контейнер "попадает" в интервал [1, 10] |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
bel_nikita, это опять-таки не укладывается в один проход, если использовать только стандартные алгоритмы и функторы.
Долго пытался сообразить, как соорудить необходимый предикат из bind'еров и logical_and, в конце-концов оставил это бесполезное занятие. Такое выражение все равно по объему будет больше, и читаться будет хуже, чем написанный по месту применения простой функтор, вроде
Если хочется изящества, можно использовать Boost.Lambda. Прошу прощения за не несущий полезной информации для автора пост -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |