要素のコレクションに関数を適用する場合std::transform
、出力を3番目のパラメーターとして受け取ります。結果を返すバージョンはありますvec2 = map(func, vec1)
か?
質問する
127 次
1 に答える
3
いいえ、標準ライブラリにはそのようなものはありません。自分で書くことができます:
template<typename T, typename Func>
std::vector<T> transform(std::vector<T> const &input, Func func) {
std::vector<T> result(input.size());
std::transform(input.begin(), input.end(), result.begin(), func);
return result;
}
追加のコンテナを割り当てないためtransformed
、Boost.Rangeのアダプタを使用することをお勧めします。
于 2012-12-05T11:24:19.973 に答える