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

Как в бинарном предикате или функторе к одной из переменных применить некоторый функциональный объект? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перестановка местами два участка строки http://www.cyberforum.ru/cpp-beginners/thread1084312.html
Есть область памяти (строка), условно поделенная на две части A и B. Область B идет сразу после A. Заданы длины обоих частей. Используйте рекурсивный reverse(), чтобы поменять a и b местами....
C++ Ошибка после выполнения программы Как исправить? Программа выполняется правильно, но после нажатья Энтера вот это выскакивает (очень сильно раздражает). Причем если нет getch(), то все норм. http://www.cyberforum.ru/cpp-beginners/thread1084287.html
C++ Что делают функции int(), float()?
Добрый день. Неоднократно встречал функции вида int(), float() и т.д. Вопрос - что они делаю и зачем они нужны. Спасибо!
C++ Дополнить код с обработкой элементов
Составить программу, которая создает очередь из произвольного количества элементов. Информационная часть динамического элемента должна состоять из двух строк. Это сделано, а вот со второй частью...
C++ максимальное и минимальное число отдельно среди всех положительных чисел http://www.cyberforum.ru/cpp-beginners/thread1084251.html
Здравствуйте! Помогите пожалуйста нужно найти максимальное и минимальное число отдельно среди всех положительных чисел и отдельно среди всех отрицательных чисел.
C++ Найти слова в строке В строке, состоящей из слов и знаков препинания (пробел . : , ! ?-; ), найти: слова, состоящие из разных букв. подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
29.01.2014, 12:17  [ТС]
Avazart, спасибо конечно, но вопрос стоял в том как передать в бинарный функтор объект функции к одному из аргументов.
Почему возник такой вопрос - к примеру приведенный алгоритм вполне просто реализуется. Например, так:
C++
1
2
for (int iter = 0; iter < SIZE; ++iter)
    arr3[iter] = arr1[iter] + (arr2[iter]%2) ? arr2[iter]: 2 * arr2[iter];
Заметим, что в данном случае временный объект не создается. А вот если применять сперва алгоритм transform с неким функтором, а затем суммировать элементы то в итоге получится, что мы проходим по второму массиву дважды и перезаписываем исходный (либо заносим во временный массив). С циклом for такого нет - он более оптимальный. Так вот как подобный алгоритм записать с помощью одного алгоритма STL и бинарного предиката?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru