![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 26.01.2012
Сообщений: 5
|
![]()
С конструктором по умолчанию это мой косяк но вот с find_if( loc, c.end(), ????? ); так и не понятно!!!!! по указанной ссылке предикат использует значение такого же типа что и класс в шаблоне а нам нужно сравнивать одно значение типа int с полем int a в классе A ))))) или есть мысль что find_if() для этих целей не подходит, тогда возникает вопрос какую функцию лучше заюзать если таковая есть ????? )))))
допустим есть класс -> Код:
Код:
Последний раз редактировалось ZMEY_KORAL; 15.02.2012 в 17:51. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
Гуглим алгоритм:
http://www.cplusplus.com/reference/algorithm/find_if/ Имеем форму записи: Код:
pred Unary predicate taking an element in the range as argument, and returning a value indicating the falsehood (with false, or a zero value) or truth (true, or non-zero) of some condition applied to it. This can either be a pointer to a function or an object whose class overloads operator(). Там же смотрим пример, и осознаём, что предикатом может быть любая сущность, которая может вести себя подобно функции, и на выходе возвращает истину, или ложь. Теперь смотрим твой код: Код:
2. Отсутствует operator() (A* rhs) {...} Соответственно, класс не может являться предиктатом для функции find_if Его надлежит построить согласно примеру по указанной выше ссылке. /ps Nicolai M. Josuttis со своей книгой "с++ Стандартная библиотека" спасет отца русской демократии. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
алгоритм находит только первое вхождение find_if | Progsenya | Общие вопросы C/C++ | 5 | 11.09.2010 10:38 |
реализация алгоритма find_if | Progsenya | Общие вопросы C/C++ | 2 | 10.09.2010 23:58 |