05.06.2016, 14:58. Просмотров 284. Ответов 2
Для произвольного целочисленного массива данных написать функцию которая уменьшает все элементы в 2 раза с использованием функциональных объектов и адаптеров.
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| #include <iostream>
#include <algorithm>
using namespace std;
template<class Operation, class T>
binder2nd <Operation> bind2nd (const Operation& op, const T& x)
{
return binder2nd<Operation>(
op, typename
Operation::second_argument_type(x)
);
}
struct multiplies2:unary_function<int, int>
{
bool operator()(int x) const { return x * 0.5; }
};
int main()
{
int mas[] = { 2, 50, 8, 10, 110, 34, 48, 78, 24 };
for_each(mas, mas + 9, bind2nd(multiplies<int>(), 0.5));
for (int i = 0; i < 9; i++) cout << mas[i] << " ";
cout << endl;
return 0;
} |
|
При компиляции выдаётся список ошибок, можете помочь с исправлением.
Ошибка C2143 синтаксическая ошибка: отсутствие ";" перед "<"
Ошибка C2059 синтаксическая ошибка: <
Ошибка C2988 неопознанное объявление или определение шаблона
Ошибка C2679 бинарный "<<": не найден оператор, принимающий правый операнд типа "overloaded-function" (или приемлемое преобразование отсутствует)
Ошибка C3861 bind2nd: идентификатор не найден