#include <iostream>
#include <vector>
#include <string>
class fruit
{
public:
std::string apple;
std::string banana;
std::string orange;
};
class grocery
{
public:
std::vector<fruit> g_items;
std::string total_weight;
};
int main()
{
std::vector<grocery> shopping;
for(int i = 1; i <= 3; ++i)
{
std::string num = std::to_string(i);
grocery g;
g.g_items.push_back({"apple"+num, "banana"+num, "orange"+num});
shopping.push_back(g);
}
auto check_item = [&](std::string (fruit::*f_itm)) -> void
{
for (auto &g : shopping)
{
for(auto &f : g.g_items) {
std::cout << f.*f_itm << std::endl;
}
}
std::cout << std::endl;
};
check_item(&fruit::apple);
check_item(&fruit::banana);
check_item(&fruit::orange);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgoKY2xhc3MgZnJ1aXQKewpwdWJsaWM6CiAgICBzdGQ6OnN0cmluZyBhcHBsZTsKICAgIHN0ZDo6c3RyaW5nIGJhbmFuYTsKICAgIHN0ZDo6c3RyaW5nIG9yYW5nZTsKfTsKCmNsYXNzIGdyb2NlcnkKewpwdWJsaWM6CiAgICBzdGQ6OnZlY3RvcjxmcnVpdD4gZ19pdGVtczsKICAgIHN0ZDo6c3RyaW5nIHRvdGFsX3dlaWdodDsgICAKfTsKCmludCBtYWluKCkKewoJc3RkOjp2ZWN0b3I8Z3JvY2VyeT4gc2hvcHBpbmc7IAoKCWZvcihpbnQgaSA9IDE7IGkgPD0gMzsgKytpKQoJewoJCXN0ZDo6c3RyaW5nIG51bSA9IHN0ZDo6dG9fc3RyaW5nKGkpOwoJCWdyb2NlcnkgZzsKCQlnLmdfaXRlbXMucHVzaF9iYWNrKHsiYXBwbGUiK251bSwgImJhbmFuYSIrbnVtLCAib3JhbmdlIitudW19KTsgCgkJc2hvcHBpbmcucHVzaF9iYWNrKGcpOwoJfQoKCWF1dG8gY2hlY2tfaXRlbSA9IFsmXShzdGQ6OnN0cmluZyAoZnJ1aXQ6OipmX2l0bSkpIC0+IHZvaWQKCXsKCSAgICBmb3IgKGF1dG8gJmcgOiBzaG9wcGluZykKICAgIAl7CgkJCWZvcihhdXRvICZmIDogZy5nX2l0ZW1zKSB7CgkgICAgICAgIAlzdGQ6OmNvdXQgPDwgZi4qZl9pdG0gPDwgc3RkOjplbmRsOwoJICAgICAgICB9CiAgICAJfQogICAgCXN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7Cgl9OwoKCWNoZWNrX2l0ZW0oJmZydWl0OjphcHBsZSk7CgljaGVja19pdGVtKCZmcnVpdDo6YmFuYW5hKTsKCWNoZWNrX2l0ZW0oJmZydWl0OjpvcmFuZ2UpOwoKCXJldHVybiAwOwp9