Форум программистов, компьютерный форум CyberForum.ru

find_if, нужна помощь - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Запуск не через cmd http://www.cyberforum.ru/cpp-beginners/thread435647.html
Компилятор Dev C++, через что ещё можно произвести выполнение, кроме как через Cmd, и как сделать? Спасибо!
C++ Удалить из сообщения слова (без учета регистра), которые повторяются. Удалить из сообщения слова (без учета регистра), которые повторяются. http://www.cyberforum.ru/cpp-beginners/thread435639.html
Подсчитать количество нечетных элементов C++
Подсчитать количество нечетных элементов,Найти номер последнего максимального элемента,Поменять местами два средних столбца, если количество столбцов четная, и первый со средним столбцом, если количество столбцов нечетная.
C++ Не знаю как выполнить
Помогите пожалуйста с этой задачей: Напишите функцию void compare (char str1, char str2), сравнивающую 2 символьных массива. Функция main должна считывать две строки с клавиатуры, вызывать функцию compare, вывести результат её работы на экран. Спасибо.
C++ Использование функции http://www.cyberforum.ru/cpp-beginners/thread435622.html
Не могли бы помочь решить вот это задание? И подскажите где можно прочитать о функциях, передаче данных при вызове функции. Желательно с примерами, чтобы хорошенько освоить.
C++ Вычисление функций с использованием ее разложение в степенной ряд Для х изменяющегося от а до b с шагом (b-a) / k, где (k = 10), вычислить функцию f (x), используя ее разложение в степенной ряд в двух случаях: а) для заданного n; б) для заданной точности S(сумма) (S = 0.0001). Для сравнения найти точное значение функции: Функция: y = (пи^2)/8 - пи/4 * |x| диапазон изменения аргумента: пи/5 <= x <=пи подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1594 / 986 / 117
Регистрация: 27.09.2009
Сообщений: 1,901
Завершенные тесты: 1
26.01.2012, 19:23     find_if, нужна помощь
find_if, очевидно, принимает не какое-то не пойми к чему относящееся значение типа bool. А принимает он сравниватель - некое выражение (функцию или объект с оператором круглых скобок, в C++11 можно лямбда-функцию), которое принимает на входе значение, содержащееся в контейнере (а не итератор). На выходе сравниватель для каждого предъявленного выражения уже выдаёт bool - то это, что мы ищем, или нет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool Comparer1(const HardWare &h)  // Вариант 1 - функция
{
    return h.ram == "8Gb";
}
class Comparer2 {  // Вариант 2 - объект-сравниватель
public:
    Comparer2(const std::string& crit): criterion(crit) {}
    bool operator () (const HardWare &h) const {return h.ram == criterion;}
private:
    const string criterion;
};
 
void foo(ComputerModel<HardWare> &obj)
{
    obj.Find(obj.begin(), obj.end(), Comparer1);  // Функцией
    obj.Find(obj.begin(), obj.end(), Comparer2("8Gb"));  // Объектом
    obj.Find(obj.begin(), obj.end(), [](const HardWare& h) {return h.ram == "8Gb";});  // Лямбдой
}
 
Текущее время: 01:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru