C/C++
transform()

template <class InIter, class OutIter, class Fun>
	OutIter transform(InIter start, InIter end,
				OutIter result, Func unaryfunc);
template <class InIter1, class InIter2, class OutIter, class Func>
	OutIter transform(InIter1 start1, InIter1 end1, InIter2 start2,
				OutIter result, Func binaryfunc);



transform() , result. start end. unaryfunc. .

, , , .

, .


transform(), . , xform(), . , , .

//     transform().
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;

//   ,
int xform(int i) {
	return i*i; //   
}

int main()
{
	list<int> xl;

	int i;

	//   .
	for(i=0; i<10; i++) xl.push_back(i);

	cout << "   xl: ";
	list<int>::iterator p = xl.begin();
	while(p != xl.end()){
		cout << *p << " ";
		p++;
	}

	cout << endl;

	//   xl.
	p = transform(xl.begin() , xl.end(), xl.begin(), xform);

	cout << "   xl:";

	p = xl.begin();
	while(p!= xl.end()) {
		cout << *p << " ";
		p++;
	}

	return 0;
}

.

   xl: 		0 1 2 3 4 5 6 7 8 9
   xl: 	0 1 4 9 16 25 36 49 64 81

, xl .







Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: