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

Прокомментировать код функций, генерирующих другие функции (лямбды) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу для поиска и замены (поиск-вставка) http://www.cyberforum.ru/cpp-beginners/thread1632393.html
Доброго! Имеется код на ST (*259384*) HV_259384:= SEL(STATE_NET_RES2_M, IN_RES2_DINT1, 0); (*259398*) UNPACK16_1(HV_259384); Требуется его изменить следующим образом: (*259384*) HV_259384:= SEL(STATE_NET_RES2_M, IN_RES2_DINT1, 0); (*259398*) UNPACK16_1(SEL(STATE_NET_RES2_M, IN_RES2_DINT1, 0)); т.е. вставлять в текст ниже вместо значения HV_ХХХХХХ значение присвоения.
C++ Упражнение по программированию (Стивен Прата, глава 2, упражнение 3) 2 Глава, вопрос 3. Напишите программу на С++, которая использует три определяемых пользователем функции (включая main()) и генерирует следующий вывод: Three blind mice Three blind mice See how they run See how they run Одна функция вызываемая два раза, должна генерировать первые две строки, а другая также вызываемая два раза - оставшиеся строки. Не понимаю как это... http://www.cyberforum.ru/cpp-beginners/thread1632391.html
Целые числа в локальном отладчике C++
#include <stdio.h> #include "stdafx.h" #include <conio.h> #include <iostream> #include <iomanip> using namespace::std; /* печать таблицы температур по Фаренгейту и Цельсию для fahr = 0, 20 ... 300; вариант с плавающей точкой */ int main() { float fahr,celsius;
C++ Инкрементирование элементов массива-счётчика
Здравствуйте. К примеру, есть массив: const int stablePay = 200; // dollars const double rate = 0.09; // 9 % const int totalPaySize = 20; double totalPay;
C++ Не могу удалить динамический массив http://www.cyberforum.ru/cpp-beginners/thread1632360.html
В общем, выдает критическую ошибку: HEAP CORRUPTION DETECTED: after Normal block (#140) at 0x004452BF0. CRT detected that the application wrote to memory after end of heap buffer. когда собираюсь удалить из памяти динамический массив. без delete все работает. в чем проблема? void fillArray(int *pArray, int size); void showArray(int *pArray, int size); void freeArray(int *pArray); void...
C++ Запись в файл слов, которые не повторяются Добрый вечер, помогите с кодом. Как сделать чтобы считать с файла слова в односвязный список, сделать сортировку, и записать в другой файл слова кроме тех которые повторяются. Вот мой код: void List::readFromFile(char *FileWay) { FILE *file; int j = 0; file = fopen(FileWay,"r"); if (file == NULL) { cout << "Error" << endl; return; } подробнее

Показать сообщение отдельно
kquick
6 / 6 / 5
Регистрация: 15.05.2014
Сообщений: 102

Прокомментировать код функций, генерирующих другие функции (лямбды) - C++

05.01.2016, 21:49. Просмотров 215. Ответов 3
Метки (Все метки)

В функциональном программировании функции могут возвращать другие функции.

Корректно ли делать это в C++ так, как показано ниже? Какие могут быть проблемы?
Пример 1:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <functional>
 
std::function<int(int)> gen_fun(int n) {
    return [&n](int x) { return x*n; };
}
 
int main() {
    std::function<int(int)> f = gen_fun(5);
    std::cout << f(1) << std::endl;
    std::cout << f(2) << std::endl;
    std::cout << f(3) << std::endl;
}
Пример 2:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <functional>
 
std::function<int()> gen_clo() {
    static int n = 1;
    return [=]() { return n++; };
}
 
int main() {
    std::function<int()> f1 = gen_clo();
    std::function<int()> f2 = gen_clo();
    std::cout << f1() << std::endl;
    std::cout << f1() << std::endl;
    std::cout << f2() << std::endl;
}
Во втором примере в замыканиях разделяемая общая n. Как генерировать независимые n при каждом создании такого замыкания?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru