リストの内包表現みたいなのを作りたかったんだけど

まだ力不足でできなかった。SRM400 Div2 Level1をさくっと2行くらいで解きたいのだが。

template<typename IN, typename OUT, typename UnaryFunction>
vector<OUT> mapcar(vector<IN> xs, UnaryFunction f){
  vector<OUT> result(xs.size());
  transform(xs.begin(), xs.end(), result.begin(), f);
  return result;
};

void print(const int& t){
  cout << t << endl;
};
int inc(const int& t){
  return 1 + t;
};

int main() {
  vector<int> xs, ys;
  xs += 1,2,3;
  print_vector(xs);
  ys.resize(xs.size());
  // OK:
  // for_each(xs.begin(), xs.end(), &print);
  // OK:
  // transform(xs.begin(), xs.end(), ys.begin(), &inc);
  // OK:
  //  transform(xs.begin(), xs.end(), ys.begin(), (_1+1));

  // NG:
  ys = mapcar(xs, (_1+1));
  print_vector(ys);

  //  print_vector(mapcur(xs, _1+1));
}