C++ transform関数:使い方と応用例を徹底解説
C++では、transform関数を使用して、コンテナ内の要素に特定の操作を実行し、その結果を別のコンテナに保存します。
transform関数の基本的な構文は以下の通りです:
transform(first1, last1, result, unary_op);
その中:
- first1とlast1は、処理する要素の範囲を入力コンテナーで表します。
- resultは、結果を格納するための目標コンテナを示しています。
- 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に格納しました。