リストの内包表現みたいなのを作りたかったんだけど
まだ力不足でできなかった。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)); }