![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
Всем доброго времени суток.
Читаю Страуструпа, дошел до такого кода:
Мне непонятна связь между переменной u и последовательностью c, понятно что используется логическая функция less_then_7, но как эта функция понимает что переменная u - это эдллемент последовательности? ЗЫ Что неприятно в книге, так это то что полный код не приводится, и приходится думать больше..... -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Файл ...\Include\algorithm
*_F — элемент последовательности _P == less_than_7 Это сообщение отредактировал(а) SergeCpp - 26.9.2006, 14:31 |
|||
|
||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
Смутно понятно.... но постараюсь разобратся, спасибо.
-------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| Oleg_Ci |
|
||||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 3 Всего: 30 |
Функция fint в отличии от find_if "ищет позицию значения"
|
||||
|
|||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
Олег4, спасибо
-------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 3 Всего: 30 |
Ну алгоритм берёт превое число из массива (c.begin() - указатель на первое число), и отправляет его в функцию less_then_7, и если функция вернёт true, то алгоритм возвращает итератор на это самое число, а если false - то берёт второе число и снова передаёт его функции less_then_7 и т.д. И если ничего не найдёт то возвращает итератор указывающий "за предел массива" ( с.end() )
Это спрятано в нутри алгоритма, в принципе как я понимаю алгоритму передаётся интервал чисел ( от begin до end ) и пользовательская функция, которая вызывается из "внутренностей" алгоритма, и в эту самую функцию "пихает" числа из массива, и проверяет значение которое эта функция возвращает( true - false ) |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Так и получается find_if в качестве предиката может использовать все что угодно, к чему можно обратиться с помощью () В данном случае тип второго шаблонного параметра find_if-а будет либо bool (*)(int), либо bool (&)(int) (скорее второе) Переменная u создается в стеке и равна значению текущей переменной из c -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 1 Всего: 14 |
Народ спасибо, мне теперь все ясно
-------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |