#include <map>
#include <list>
#include <algorithm>
#include <iterator>
#include <vector>
int getage(const std::pair<std::string, int>& pair)
{
return pair.second;
}
int main()
{
std::map<std::string, int> agemap;
agemap["jill"] = 13;
agemap["jack"] = 31;
std::list<int> agelist(agemap.size());
std::transform(agemap.begin(), agemap.end(), agelist.begin(), getage);
// or:
std::vector<int> v;
std::transform(agemap.begin(), agemap.end(), std::back_inserter(v), getage);
// By popular demand, and just to spell it out:
int age_array[10];
std::transform(agemap.begin(), agemap.end(), age_array, getage);
// or even
int *dyn_array = new int[agemap.size()];
std::transform(agemap.begin(), agemap.end(), dyn_array, getage);
delete[] dyn_array;
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxpdGVyYXRvcj4KI2luY2x1ZGUgPHZlY3Rvcj4KCmludCBnZXRhZ2UoY29uc3Qgc3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBpbnQ+JiBwYWlyKQp7IAogICAgcmV0dXJuIHBhaXIuc2Vjb25kOyAKfQoKaW50IG1haW4oKQp7CiAgICAgc3RkOjptYXA8c3RkOjpzdHJpbmcsIGludD4gYWdlbWFwOwogICAgIGFnZW1hcFsiamlsbCJdID0gMTM7CiAgICAgYWdlbWFwWyJqYWNrIl0gPSAzMTsKCiAgICAgc3RkOjpsaXN0PGludD4gYWdlbGlzdChhZ2VtYXAuc2l6ZSgpKTsKICAgICBzdGQ6OnRyYW5zZm9ybShhZ2VtYXAuYmVnaW4oKSwgYWdlbWFwLmVuZCgpLCBhZ2VsaXN0LmJlZ2luKCksIGdldGFnZSk7CgogICAgIC8vIG9yOgogICAgIHN0ZDo6dmVjdG9yPGludD4gdjsKICAgICBzdGQ6OnRyYW5zZm9ybShhZ2VtYXAuYmVnaW4oKSwgYWdlbWFwLmVuZCgpLCBzdGQ6OmJhY2tfaW5zZXJ0ZXIodiksIGdldGFnZSk7CgogICAgIC8vIEJ5IHBvcHVsYXIgZGVtYW5kLCBhbmQganVzdCB0byBzcGVsbCBpdCBvdXQ6CiAgICAgaW50IGFnZV9hcnJheVsxMF07CiAgICAgc3RkOjp0cmFuc2Zvcm0oYWdlbWFwLmJlZ2luKCksIGFnZW1hcC5lbmQoKSwgYWdlX2FycmF5LCBnZXRhZ2UpOwoKICAgICAvLyBvciBldmVuCiAgICAgaW50ICpkeW5fYXJyYXkgPSBuZXcgaW50W2FnZW1hcC5zaXplKCldOwogICAgIHN0ZDo6dHJhbnNmb3JtKGFnZW1hcC5iZWdpbigpLCBhZ2VtYXAuZW5kKCksIGR5bl9hcnJheSwgZ2V0YWdlKTsKICAgICAKICAgICBkZWxldGVbXSBkeW5fYXJyYXk7CgkKfQ==