template
class BinaryOperation> Out transform(In1 fi rst1,
In1 last1, In2 fi rst2, Out result,
BinaryOperation binary_op);
Функционалдық объект стандартты немесе қолданушы тағайындаған болуы
мүмкін. Қолданушы тағайындаған функционалдық объект
unary_ function
немесе
binary_function
функциясының (363 б. қараңыз) ұрпағы болуы тиіс.
Төменде көрсетілген мысалда
transform
алгоритмін бірінші шақыру
кезінде
а
жиымын
2
2
i
i
i
b
a
a
−
=
формуласы бойынша түрлендіру орында-
лады, ал оны екінші шақыру кезінде
negate
стандартты функционалдық
объектісінің көмегімен
b
жиымы элементтерінің таңбасы өзгертіледі.
#include
#include
#include
using namespace std;
struct preobr: binary_function {
double operator()(double x, double y) const{
return x * x - y * y;}
};
int main(){
const int m = 5;
double a[m] = {5, 3, 2, 3, 1},
b[m] = {1, 10, -3, 2, -4};
transform(a, a + m, b, a, preobr());
transform(b, b + m, b, negate());
int
i;
for (i = 0; i
cout << endl;
for (i = 0; i
cout << endl;
return
0;
}
Программа орындалуының нəтижесі:
Достарыңызбен бөлісу: |