• Source
    1. #include <iostream>
    2. #include <array>
    3. #include <vector>
    4. #include <algorithm>
    5. using namespace std;
    6.  
    7. int main() {
    8. // 1 ~ 10 の数列を用意
    9. array<int, 10> data;
    10. iota(data.begin(), data.end(), 1);
    11. for (auto num : data) { cout << num << ","; } cout << endl;
    12.  
    13. // 各要素を2乗する (map)
    14. vector<int> data2;
    15. transform(data.begin(), data.end(), back_inserter(data2), [](int num) {
    16. return num * num;
    17. });
    18. for (auto num : data2) { cout << num << ","; } cout << endl;
    19.  
    20. // 奇数だけ取り出す (filter)
    21. vector<int> data3;
    22. copy_if(data2.begin(), data2.end(), back_inserter(data3), [](int num) {
    23. return num % 2;
    24. });
    25. for (auto num : data3) { cout << num << ","; } cout << endl;
    26.  
    27. // すべてを掛け合わせる (reduce)
    28. int result = accumulate(data3.begin(), data3.end(), 1, [](int a, int b) {
    29. return a * b;
    30. });
    31. cout << result << endl;
    32.  
    33. return 0;
    34. }