#include <string>
#include <iostream>
#include <map>
using namespace std;
struct Person {
Person(std::string first, std::string last);
std::string _first, _last;
};
ostream& operator<<(ostream& os, const Person& per){
os << per._first << " " << per._last;
return os;
}
struct SocialNetwork {
void addUser(std::string first, std::string last);
std::map<std::string, Person> _users;
void printUsers();
};
void SocialNetwork::addUser(std::string first, std::string last){
std::string name = (first + last);
Person user (first, last);
_users.insert(std::pair<std::string, Person>(name, user));
}
Person::Person(std::string first, std::string last){
_first = first;
_last = last;
}
void SocialNetwork::printUsers(){
std::map<std::string, Person>::iterator it;
it = _users.begin();
while(it != _users.end()){
cout << it->first << endl;
cout << it->second << endl;
it++;
}
}
int main() {
std::string cFirst ("Chris");
std::string cLast ("Cringle");
SocialNetwork sn;
sn.addUser(cFirst,cLast);
sn.printUsers();
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFBlcnNvbiB7CglQZXJzb24oc3RkOjpzdHJpbmcgZmlyc3QsIHN0ZDo6c3RyaW5nIGxhc3QpOwoJc3RkOjpzdHJpbmcgX2ZpcnN0LCBfbGFzdDsKfTsKCgpvc3RyZWFtJiBvcGVyYXRvcjw8KG9zdHJlYW0mIG9zLCBjb25zdCBQZXJzb24mIHBlcil7Cm9zIDw8IHBlci5fZmlyc3QgPDwgIiAiIDw8IHBlci5fbGFzdDsKcmV0dXJuIG9zOwp9CgoKc3RydWN0IFNvY2lhbE5ldHdvcmsgewoJdm9pZCBhZGRVc2VyKHN0ZDo6c3RyaW5nIGZpcnN0LCBzdGQ6OnN0cmluZyBsYXN0KTsKCXN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBQZXJzb24+IF91c2VyczsKCXZvaWQgcHJpbnRVc2VycygpOwp9OwoKCnZvaWQgU29jaWFsTmV0d29yazo6YWRkVXNlcihzdGQ6OnN0cmluZyBmaXJzdCwgc3RkOjpzdHJpbmcgbGFzdCl7CiAgc3RkOjpzdHJpbmcgbmFtZSA9IChmaXJzdCArIGxhc3QpOwogIFBlcnNvbiB1c2VyIChmaXJzdCwgbGFzdCk7CiAgX3VzZXJzLmluc2VydChzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIFBlcnNvbj4obmFtZSwgdXNlcikpOwp9CgpQZXJzb246OlBlcnNvbihzdGQ6OnN0cmluZyBmaXJzdCwgc3RkOjpzdHJpbmcgbGFzdCl7CiAgX2ZpcnN0ID0gZmlyc3Q7CiAgX2xhc3QgPSBsYXN0Owp9Cgp2b2lkIFNvY2lhbE5ldHdvcms6OnByaW50VXNlcnMoKXsKc3RkOjptYXA8c3RkOjpzdHJpbmcsIFBlcnNvbj46Oml0ZXJhdG9yIGl0OwppdCA9IF91c2Vycy5iZWdpbigpOwp3aGlsZShpdCAhPSBfdXNlcnMuZW5kKCkpewogICAgY291dCA8PCBpdC0+Zmlyc3QgPDwgZW5kbDsKICAgIGNvdXQgPDwgaXQtPnNlY29uZCA8PCBlbmRsOwogICAgaXQrKzsKICAgIH0KfQoKCmludCBtYWluKCkgewoJc3RkOjpzdHJpbmcgY0ZpcnN0ICgiQ2hyaXMiKTsKc3RkOjpzdHJpbmcgY0xhc3QgKCJDcmluZ2xlIik7ClNvY2lhbE5ldHdvcmsgc247CnNuLmFkZFVzZXIoY0ZpcnN0LGNMYXN0KTsKc24ucHJpbnRVc2VycygpOwoJcmV0dXJuIDA7Cn0=