#include <iostream>
#include <vector>
#include <iterator>
#include <functional>
using namespace std;
double f(double x) {
return 4*x+1;
}
template<class ForwardIt, class Generator>
void generate_iter(ForwardIt first, ForwardIt last, Generator g)
{
while (first != last) {
*first = g(first);
++first;
}
}
int main() {
size_t constexpr nmax = 10;
std::vector<double> vect1 (nmax);
generate_iter(vect1.begin(), vect1.end(), [&](const std::vector<double>::iterator& iter) {
auto count = std::distance(vect1.begin(), iter);
return f(count);
});
for (size_t i{0} ; i < nmax ; ++i) {
std::cout << vect1[i] << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmRvdWJsZSBmKGRvdWJsZSB4KSB7CglyZXR1cm4gNCp4KzE7Cn0KCnRlbXBsYXRlPGNsYXNzIEZvcndhcmRJdCwgY2xhc3MgR2VuZXJhdG9yPgp2b2lkIGdlbmVyYXRlX2l0ZXIoRm9yd2FyZEl0IGZpcnN0LCBGb3J3YXJkSXQgbGFzdCwgR2VuZXJhdG9yIGcpCnsKICAgIHdoaWxlIChmaXJzdCAhPSBsYXN0KSB7CiAgICAgICAgKmZpcnN0ID0gZyhmaXJzdCk7CiAgICAgICAgKytmaXJzdDsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBzaXplX3QgY29uc3RleHByIG5tYXggPSAxMDsKICAgIHN0ZDo6dmVjdG9yPGRvdWJsZT4gdmVjdDEgKG5tYXgpOwogICAgZ2VuZXJhdGVfaXRlcih2ZWN0MS5iZWdpbigpLCB2ZWN0MS5lbmQoKSwgWyZdKGNvbnN0IHN0ZDo6dmVjdG9yPGRvdWJsZT46Oml0ZXJhdG9yJiBpdGVyKSB7CiAgICAJYXV0byBjb3VudCA9IHN0ZDo6ZGlzdGFuY2UodmVjdDEuYmVnaW4oKSwgaXRlcik7CiAgICAJcmV0dXJuIGYoY291bnQpOwogICAgfSk7CiAgICBmb3IgKHNpemVfdCBpezB9IDsgaSA8IG5tYXggOyArK2kpIHsKICAgIAlzdGQ6OmNvdXQgPDwgdmVjdDFbaV0gPDwgZW5kbDsKICAgIH0KCXJldHVybiAwOwp9