#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct Friend {
string first_name;
string last_name;
string phone;
};
bool RemoveByName (vector<Friend>& black_book, const string& name) {
vector<Friend>::iterator removed_it = remove_if(black_book.begin(), black_book.end(), [&name](const Friend& f){return f.first_name == name;});
if (removed_it == black_book.end())
return false;
black_book.erase(removed_it, black_book.end());
return true;
}
int main() {
vector <Friend> black_book {
Friend {"John", "Nash", "4155555555"},
Friend {"Homer", "Simpson", "2064375555"}
};
if(RemoveByName(black_book, "John")) {
cout << "removed" << endl;
} else {
cout << "not found" << endl;
}
if(RemoveByName(black_book, "Tom")) {
cout << "removed" << endl;
} else {
cout << "not found" << endl;
}
for(int i = 0; i < black_book.size(); ++i) {
Friend& f = black_book.at(i);
cout << f.first_name << " " << f.last_name << " " << f.phone << endl;
}
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDxzdHJpbmc+CiAgICAjaW5jbHVkZSA8YWxnb3JpdGhtPgogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAgIAogICAgc3RydWN0IEZyaWVuZCB7CiAgICAJc3RyaW5nIGZpcnN0X25hbWU7CiAgICAJc3RyaW5nIGxhc3RfbmFtZTsKICAgIAlzdHJpbmcgcGhvbmU7CiAgICB9OwogICAgCiAgICBib29sIFJlbW92ZUJ5TmFtZSAodmVjdG9yPEZyaWVuZD4mIGJsYWNrX2Jvb2ssIGNvbnN0IHN0cmluZyYgbmFtZSkgewogICAgICAgIHZlY3RvcjxGcmllbmQ+OjppdGVyYXRvciByZW1vdmVkX2l0ID0gcmVtb3ZlX2lmKGJsYWNrX2Jvb2suYmVnaW4oKSwgYmxhY2tfYm9vay5lbmQoKSwgWyZuYW1lXShjb25zdCBGcmllbmQmIGYpe3JldHVybiBmLmZpcnN0X25hbWUgPT0gbmFtZTt9KTsKICAgICAgICBpZiAocmVtb3ZlZF9pdCA9PSBibGFja19ib29rLmVuZCgpKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgYmxhY2tfYm9vay5lcmFzZShyZW1vdmVkX2l0LCBibGFja19ib29rLmVuZCgpKTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIAogICAgaW50IG1haW4oKSB7CiAgICAgICAgdmVjdG9yIDxGcmllbmQ+IGJsYWNrX2Jvb2sgewogICAgICAgICAgICBGcmllbmQgeyJKb2huIiwgIk5hc2giLCAiNDE1NTU1NTU1NSJ9LAogICAgICAgICAgICBGcmllbmQgeyJIb21lciIsICJTaW1wc29uIiwgIjIwNjQzNzU1NTUifQogICAgICAgIH07CiAgICAgICAgaWYoUmVtb3ZlQnlOYW1lKGJsYWNrX2Jvb2ssICJKb2huIikpIHsKICAgICAgICAJY291dCA8PCAicmVtb3ZlZCIgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgewogICAgICAgIAljb3V0IDw8ICJub3QgZm91bmQiIDw8IGVuZGw7CiAgICAgICAgfQogICAgICAgIGlmKFJlbW92ZUJ5TmFtZShibGFja19ib29rLCAiVG9tIikpIHsKICAgICAgICAJY291dCA8PCAicmVtb3ZlZCIgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgewogICAgICAgIAljb3V0IDw8ICJub3QgZm91bmQiIDw8IGVuZGw7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBibGFja19ib29rLnNpemUoKTsgKytpKSB7CiAgICAgICAgCUZyaWVuZCYgZiA9IGJsYWNrX2Jvb2suYXQoaSk7CiAgICAgICAgCWNvdXQgPDwgZi5maXJzdF9uYW1lIDw8ICIgIiA8PCBmLmxhc3RfbmFtZSA8PCAiICIgPDwgZi5waG9uZSA8PCBlbmRsOwogICAgICAgIH0KICAgIAlyZXR1cm4gMDsKICAgIH0K