Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // C++98
- void erase_person (person *ptr) {
- std::list <person*>::iterator it;
- for (it = people.begin(); it != people.end(); ++it) {
- if (*it != ptr)
- continue;
- people.erase(it);
- break; // assume person is only linked once
- }
- }
- // C++11
- void erase_person(const person& per)
- {
- remove_if(people.begin(), people.end(), [](shared_ptr<person> cur_per) {
- return per == cur_per;
- });
- }
- // C++11 using O(log n) algo
- void erase_person(const person& per)
- {
- erase(find_if(people.begin(), people.end(), [](shared_ptr<person> cur_per) {
- return per == cur_per;
- }));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement