2

要素のコレクションに関数を適用する場合std::transform、出力を3番目のパラメーターとして受け取ります。結果を返すバージョンはありますvec2 = map(func, vec1)か?

4

1 に答える 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 に答える