Predykat zmiast 100 funkcji

0

Witam chcialbym by ktos z was mi przyblizyl co to jest ten "predykat" jak go uzywac , lub jakis link do materialow . Niestety sam nic nie znalazlem sensownego na ten temat .

7

"predykat" to funkcja zwracająca boola, służąca jako warunek wykonania jakiejś operacji.

np. funkcja std::copy_if przyjmuje parametr - predykat, który jest wywołany dla każdego kopiowanego elementu, by ustalić czy go kopiować czy nie. jako predykat można podać wskaźnik do funkcji, funktor (obiekt klasy która ma zdefiniowany operator()), albo wyrażenie lambda.

http://en.cppreference.com/w/cpp/algorithm/copy

0
unsigned ile_czegostam(bool (*predykat)(const SZwierzatko), const SZwierzyniec zoo) {
  //...
}
 

Jak mam to rozumiec ? w mainie wywolywana jest z dwoma argumentami a tu sa juz 3.
(SZwierzatko to struktura, Szwierzyniec tez )

1

To są dwa argumenty.
To jest wskaźnik na funkcje

bool (*predykat)(const SZwierzatko)
1

Nie rozumiem ;(

1

W uzupełnieniu do posta @Azarien. Unary predykat musi przyjmować iterator (binary analogicznie 2). Predykat nie musi zwracać boola tylko typ, który ma implicit konwersję do boola. Predykat powinien być constowy (nie powinien modyfikować dereferowanego iteratora). § 25.1 [8]

0

Temat co prawda stary, ale podstawową wiedzę dotyczącą sposobu zastosowania predykatów (funkcji orzekających) można znaleźć na stronie :
https://riptutorial.com/pl/cplusplus/example/17654/std----count-if

1 użytkowników online, w tym zalogowanych: 0, gości: 1