#include <iostream>
#include <functional>
#include <vector>
#include <algorithm>
using namespace std;
template<typename T, typename U>
std::vector<U> map(const std::vector<T> &v, std::function<U(const T&)> f) {
std::vector<U> res;
res.reserve(v.size());
std::transform(std::begin(v), std::end(v), std::inserter(res, res.begin()), f);
return res;
}
int main() {
vector<int> numbers = { 1, 3, 5 };
//vector<string> strings = map(numbers, [] (int x) { return string(x,'X'); });
vector<string> strings = map<int, string>(numbers, [] (int x) { return string(x,'X'); });
for (const string& s : strings) {
cout << s << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgpzdGQ6OnZlY3RvcjxVPiBtYXAoY29uc3Qgc3RkOjp2ZWN0b3I8VD4gJnYsIHN0ZDo6ZnVuY3Rpb248VShjb25zdCBUJik+IGYpIHsKICAgIHN0ZDo6dmVjdG9yPFU+IHJlczsKICAgIHJlcy5yZXNlcnZlKHYuc2l6ZSgpKTsKICAgIHN0ZDo6dHJhbnNmb3JtKHN0ZDo6YmVnaW4odiksIHN0ZDo6ZW5kKHYpLCBzdGQ6Omluc2VydGVyKHJlcywgcmVzLmJlZ2luKCkpLCBmKTsKICAgIHJldHVybiByZXM7Cn0KCgppbnQgbWFpbigpIHsKCXZlY3RvcjxpbnQ+IG51bWJlcnMgPSB7IDEsIDMsIDUgfTsKCQoJLy92ZWN0b3I8c3RyaW5nPiBzdHJpbmdzID0gbWFwKG51bWJlcnMsIFtdIChpbnQgeCkgeyByZXR1cm4gc3RyaW5nKHgsJ1gnKTsgfSk7CgkKCXZlY3RvcjxzdHJpbmc+IHN0cmluZ3MgPSBtYXA8aW50LCBzdHJpbmc+KG51bWJlcnMsIFtdIChpbnQgeCkgeyByZXR1cm4gc3RyaW5nKHgsJ1gnKTsgfSk7CgkKCWZvciAoY29uc3Qgc3RyaW5nJiBzIDogc3RyaW5ncykgewoJCWNvdXQgPDwgcyA8PCAiXG4iOwoJfQoJCglyZXR1cm4gMDsKfQ==