Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.01.2022
Сообщений: 17

Лямбда функция

25.06.2022, 13:02. Показов 1894. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан такой пример. Как в классе записать лямбду функцию? (Честно, я сам вопроса не понял, поэтому мог как-то не так написать)


C++
1
2
3
4
5
6
7
8
9
10
11
class primer{
     private:
        int a=5;
     public:
        int operator()(int b){
            return a+b;
        }
};
 
int main(){
    cout<<printer(10);
Добавлено через 2 часа 1 минуту
Как будет выглядеть захваченная переменная лямбдой функцией в классе?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2022, 13:02
Ответы с готовыми решениями:

лямбда функция
привет всем! не понимаю в чем ошибка...вот код vector&lt;string&gt; tmp_count; list&lt;string&gt; tmp_result = str; for(auto i =...

лямбда-функция
Ошибка в лямбда функции строка 14 it должен хранить итератор на элемент больший border #include &lt;algorithm&gt; #include...

Лямбда-функция и mutable переменная
Добрый день! Есть такой код: void foo() { int id = 0; auto l = () mutable { std::cout &lt;&lt; id &lt;&lt; std::endl; ++id;...

25
0 / 0 / 0
Регистрация: 07.01.2022
Сообщений: 17
27.06.2022, 14:53  [ТС]
Студворк — интернет-сервис помощи студентам
В итоге код такой должен был быть

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class primer {
private:
    int c;
public:
    primer(int v) : c(v)
    {}
 
    int operator()(int b) {
        return c * b;
    }
};
 
int main() {
    int a = 5;
    primer F(10);
    auto l1 = [a](int b) {
        return a + b;
    };
    cout << F(l1(4));
}
Но теперь лямбда стала принимать параметр по ссылке

C++
1
2
3
4
    auto l1 = [&a](int b) {
        a++;
        return a + b;
    };
Как теперь эту 'a' тоже в класс передать?

Нужно, чтобы 'a', которое в лямбде изменилось, передавалось в класс
0
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
27.06.2022, 15:09
Цитата Сообщение от Maximoz Посмотреть сообщение
В итоге код такой должен был быть
Не имеет ничего общего с тем, что вы изначально спрашивали.

Цитата Сообщение от Maximoz Посмотреть сообщение
Как теперь эту 'a' тоже в класс передать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class primer {
private:
    int& c;
public:
    primer(int& v) : c(v)
    {}
 
    int operator()(int b) {
        return c * b;
    }
};
 
int main() {
    int a = 5;
    primer F(a);
    auto l1 = [&a](int b) {
        a++;
        return a + b;
    };
    cout << F(l1(4));
}
0
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
27.06.2022, 15:20
Цитата Сообщение от Maximoz Посмотреть сообщение
Нужно, чтобы 'a', которое в лямбде изменилось, передавалось в класс
Сделано выше. В классе через c вы получите измененный в лямбде a.
0
0 / 0 / 0
Регистрация: 07.01.2022
Сообщений: 17
27.06.2022, 15:28  [ТС]
А нельзя сделать, чтобы ссылку на 'a' передавали в operator()? Как я понял, нужно именно это
0
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
27.06.2022, 16:31
Maximoz,
C++
1
2
 int operator()(int&a, int b) {
//…
C++
1
cout << F(a, l1(4));
0
0 / 0 / 0
Регистрация: 20.05.2022
Сообщений: 4
27.06.2022, 18:51
Ого
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2022, 18:51

Лямбда-функция в качестве аргумента функции
Добрый вечер! Как надо сделать, чтобы вот эта функция могла работать с лямбдой-функцией?: template &lt;typename ReturnType,...

Лямбда функция (или нет) для сортировки
Привет В общем, нужно сделать лабу в институте, ничего как всегда не объясняют, просто нужно сделать: Задача: Сигнатура функции...

Лямбда-функция: поиск нечётных значений в set<int>
Дан : set&lt;int&gt; st{1,2,3,4,5,6,7,8,9,10} .С помощью лямбда-функции реализовать поиск нечётных значений. #include&lt;set&gt; ...

Лямбда-функция, которая будет Захватывать два параметра по ссылке и выводить на экран их квадраты
Написать лямбда=функции, которые будут 2. Захватывать два параметра по ссылке и выводить на экран их квадпаты.

Лямбда функцию
Можно сделать лямбда функцию для шаблона ? bool (*pFunc)(const T a, const T b);


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru