#include <iostream>
#include <algorithm>
#include <list>
using std::cout;
using std::endl;
using std::list;
int calc(int i) {
return (i + 1) * (i + 1);
}
int main()
{
list<int> lst;
for (int i = 0; i < 5; i++)
lst.push_back(i);
list<int>::iterator p = lst.begin();
for (auto e : lst)
cout << e << " ";
cout << endl;
p = transform(lst.begin(), lst.end(), lst.begin(), calc);
for (auto e : lst)
cout << e << " ";
cout << endl;
return 0;
}
/*
run:
0 1 2 3 4
1 4 9 16 25
*/