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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Перестановка местами два участка строки http://www.cyberforum.ru/cpp-beginners/thread1084312.html
Есть область памяти (строка), условно поделенная на две части A и B. Область B идет сразу после A. Заданы длины обоих частей. Используйте рекурсивный reverse(), чтобы поменять a и b местами. Решение не требует рекурсии, кроме той, что в reverse(). #include <iostream> #include <string.h> #include <conio.h>
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
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
30.01.2014, 08:50  [ТС]     Как в бинарном предикате или функторе к одной из переменных применить некоторый функциональный объект?
Цитата Сообщение от Avazart Посмотреть сообщение
Никак, насколько я помню нет алгоритмов для двух контейнеров, нужно писать свой алгоритм.
Еще раз - transform. Вот например реализация. в моем компиляторе
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  template<typename _InputIterator, typename _OutputIterator,
       typename _UnaryOperation>
    _OutputIterator
    transform(_InputIterator __first, _InputIterator __last,
          _OutputIterator __result, _UnaryOperation __unary_op)
    {
      for ( ; __first != __last; ++__first, ++__result)
    *__result = __unary_op(*__first);
      return __result;
    }
  template<typename _InputIterator1, typename _InputIterator2,
       typename _OutputIterator, typename _BinaryOperation>
    _OutputIterator
    transform(_InputIterator1 __first1, _InputIterator1 __last1,
          _InputIterator2 __first2, _OutputIterator __result,
          _BinaryOperation __binary_op)
    {
      for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
    *__result = __binary_op(*__first1, *__first2);
      return __result;
    }

Jupiter, эмм... конечно благодарю за отзывчивость, но у меня как бы проблем с написанием функторов нет. К тому же я бы реализовал его ближе к реализации STL. Хотя бы так:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
namespace std
{
  template <class _Tp>
    struct MyFunctor : public binary_function<_Tp, _Tp, _Tp>
    {
      _Tp
      operator()(const _Tp& __x, const _Tp& __y) const
      { return __x + ((__y % 2)? __y * 2: __y); }
    };
}

Однако вопрос стоял не в этом.
Вобщем малось помозговав пришел к выводу - в подобных ситуациях решение только через свои функторы или предикаты.
 
Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru