cplusplus17.Examples/examples/transform/transform.cpp
Source: cplusplus17.Examples/examples/transform/transform.cpp
#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
std::vector<int> half(std::vector<int> values) {
std::transform(values.begin(), values.end(), values.begin(), [](int v) { return v/2; });
return values;
}
// generic
template<typename Iter>
void half_gen(Iter start, Iter stop) {
std::transform(start, stop, start, [](auto v) { return v/2; });
}
int main() {
std::vector<int> v { 2,4,6,8, 24,36,96 };
std::vector<int> v2 = half(v);
std::for_each(v2.begin(), v2.end(), [](int i) {
std::cout << "value: " << i << "\n";
});
std::vector<double> v3 { 1.5, 2.6, 3.7, 4.9, 5.2 };
half_gen(v3.begin(), v3.end());
std::for_each(v3.begin(), v3.end(), [](double d) {
std::cout << "value: " << d << "\n";
});
return 0;
}