What happens when you attempt to compile and run the following code?
#include <deque>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
template<class T>struct Out {
ostream & out;
Out(ostream & o): out(o){}
void operator() (const T & val ) { out<<val<<" "; } };
struct Add : public binary_function<int, int, int> {
int operator() (const int & a, const int & b) const { return a+b;
}
};
int main() {
int t[]={1,2,3,4,5,6,7,8,9,10};
deque<int> d1(t, t+10);
deque<int> d2(10);
transform(d1.begin(), d1.end(), d2.begin(), bind2nd(Add(), 1)); for_each(d2.rbegin(), d2.rend(), Out<int>(cout));cout<<endl; return 0;
}
Program outputs:
Comments