#include <iostream>
#include <string>
#include <array>
struct Person {
std::string name;
std::string surname;
Person(const std::string& nm, const std::string& snm)
:name{ nm }, surname{ snm }
{}
friend
std::ostream& operator<<(std::ostream& out, const Person& person)
{
return out << person.name << ", " << person.surname << ": ";
}
};
struct Account {
std::string bankName;
double balance;
Account(const std::string& bnm, double bal)
:bankName{ bnm }, balance{ bal }
{}
friend
std::ostream& operator<<(std::ostream& out, const Account& account)
{
return out << "Nazwa banku: " << account.bankName
<< ", saldo: " << account.balance;
}
};
struct AccountsIndex {
Person person;
Account account;
AccountsIndex(const Person& per, const Account& acc)
:person{ per }, account{ acc }
{}
friend std::ostream& operator<<(std::ostream& out, const AccountsIndex& accInd)
{
return out << accInd.person << accInd.account;
}
};
void print(const std::array<AccountsIndex, 5>& coll)
{
for (auto const& el : coll) {
std::cout << el << '\n';
}
}
int main()
{
std::array<AccountsIndex, 5> accounts{
AccountsIndex{Person{"John", ""}, Account{"PKO", 1200}},
AccountsIndex{Person{"Marry", "Mm"}, Account{"BGZ", 1500}},
AccountsIndex{Person{"Marry", "Mmm"}, Account{"BGZ", 1800}},
AccountsIndex{Person{"Kevin", ""}, Account{"BPH", 2236.16}},
AccountsIndex{ Person{"Antonio", ""}, Account{"BRE", 111.23}}
};
print(accounts);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YXJyYXk+CgpzdHJ1Y3QgUGVyc29uIHsKICAgIHN0ZDo6c3RyaW5nIG5hbWU7CiAgICBzdGQ6OnN0cmluZyBzdXJuYW1lOwogICAgUGVyc29uKGNvbnN0IHN0ZDo6c3RyaW5nJiBubSwgY29uc3Qgc3RkOjpzdHJpbmcmIHNubSkKICAgICAgICA6bmFtZXsgbm0gfSwgc3VybmFtZXsgc25tIH0KICAgIHt9CiAgICBmcmllbmQgCiAgICAgICAgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3V0LCBjb25zdCBQZXJzb24mIHBlcnNvbikKICAgIHsKICAgICAgICByZXR1cm4gb3V0IDw8IHBlcnNvbi5uYW1lIDw8ICIsICIgPDwgcGVyc29uLnN1cm5hbWUgPDwgIjogIjsKICAgIH0KfTsKCnN0cnVjdCBBY2NvdW50IHsgICAgCiAgICBzdGQ6OnN0cmluZyBiYW5rTmFtZTsKICAgIGRvdWJsZSBiYWxhbmNlOwogICAgQWNjb3VudChjb25zdCBzdGQ6OnN0cmluZyYgYm5tLCBkb3VibGUgYmFsKQogICAgICAgIDpiYW5rTmFtZXsgYm5tIH0sIGJhbGFuY2V7IGJhbCB9CiAgICB7fQogICAgZnJpZW5kCiAgICAgICAgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3V0LCBjb25zdCBBY2NvdW50JiBhY2NvdW50KQogICAgewogICAgICAgIHJldHVybiBvdXQgPDwgIk5hendhIGJhbmt1OiAiIDw8IGFjY291bnQuYmFua05hbWUKICAgICAgICAgICAgPDwgIiwgc2FsZG86ICIgPDwgYWNjb3VudC5iYWxhbmNlOwogICAgfQp9OwoKc3RydWN0IEFjY291bnRzSW5kZXggewogICAgUGVyc29uIHBlcnNvbjsKICAgIEFjY291bnQgYWNjb3VudDsKICAgIEFjY291bnRzSW5kZXgoY29uc3QgUGVyc29uJiBwZXIsIGNvbnN0IEFjY291bnQmIGFjYykKICAgICAgICA6cGVyc29ueyBwZXIgfSwgYWNjb3VudHsgYWNjIH0KICAgIHt9CiAgICBmcmllbmQgICAgICAgIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3QgQWNjb3VudHNJbmRleCYgYWNjSW5kKQogICAgewogICAgICAgIHJldHVybiBvdXQgPDwgYWNjSW5kLnBlcnNvbiA8PCBhY2NJbmQuYWNjb3VudDsKICAgIH0KfTsKCnZvaWQgcHJpbnQoY29uc3Qgc3RkOjphcnJheTxBY2NvdW50c0luZGV4LCA1PiYgY29sbCkKewogICAgZm9yIChhdXRvIGNvbnN0JiBlbCA6IGNvbGwpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgZWwgPDwgJ1xuJzsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBzdGQ6OmFycmF5PEFjY291bnRzSW5kZXgsIDU+IGFjY291bnRzewogICAgICAgIEFjY291bnRzSW5kZXh7UGVyc29ueyJKb2huIiwgIiJ9LCBBY2NvdW50eyJQS08iLCAxMjAwfX0sCiAgICAgICAgQWNjb3VudHNJbmRleHtQZXJzb257Ik1hcnJ5IiwgIk1tIn0sIEFjY291bnR7IkJHWiIsIDE1MDB9fSwKICAgICAgICBBY2NvdW50c0luZGV4e1BlcnNvbnsiTWFycnkiLCAiTW1tIn0sIEFjY291bnR7IkJHWiIsIDE4MDB9fSwKICAgICAgICBBY2NvdW50c0luZGV4e1BlcnNvbnsiS2V2aW4iLCAiIn0sIEFjY291bnR7IkJQSCIsIDIyMzYuMTZ9fSwKICAgICAgICBBY2NvdW50c0luZGV4eyBQZXJzb257IkFudG9uaW8iLCAiIn0sIEFjY291bnR7IkJSRSIsIDExMS4yM319CiAgICB9OwogICAgcHJpbnQoYWNjb3VudHMpOwp9