C++ transform関数:使い方と応用例を徹底解説

C++では、transform関数を使用して、コンテナ内の要素に特定の操作を実行し、その結果を別のコンテナに保存します。

transform関数の基本的な構文は以下の通りです:

transform(first1, last1, result, unary_op);

その中:

  1. first1とlast1は、処理する要素の範囲を入力コンテナーで表します。
  2. resultは、結果を格納するための目標コンテナを示しています。
  3. Unary_opは、入力コンテナの各要素に操作を実行する関数オブジェクトです。

例えば、次のコードは、transform関数を使用して、vector内の各要素を2倍にし、結果を別のvectorに保存する方法を示しています:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> vec1 = {1, 2, 3, 4, 5};
    std::vector<int> vec2(vec1.size());

    std::transform(vec1.begin(), vec1.end(), vec2.begin(), [](int n) {
        return n * 2;
    });

    for (int num : vec2) {
        std::cout << num << " ";
    }

    return 0;
}

結果は次のとおりです:

2 4 6 8 10

上記の例では、私たちはlambda式をunary_opとして使用し、入力コンテナの各要素に対して2を掛ける操作を行いました。transform操作は、結果をvec2に格納しました。

bannerAds