- *cppЯ люблю С++!
Вот этот код производит std::unique по контейнеру с набором структур по одному из полей структуры. Реквестирую пути улучшения.
std::vector<libtorrent::announce_entry>::iterator newLast =
std::unique (allTrackers.begin (), allTrackers.end (),
boost::bind (std::equal_to<std::string> (),
boost::bind (&libtorrent::announce_entry::url, _1),
boost::bind (&libtorrent::announce_entry::url, _2)));
Replies (4)
- @0xd34df00d:@analizer Да бля, я все время забываю, что == — вполне себе callable для таких типов.
- @0xd34df00d:@analizer Это как в отдельную переменную-то сохранить?
Если erase заодно — совсем пиздец получается же трехэтажный.
Знаю про set, но я что-то не слышал про сеты в STL с кастомным хешем/бинарным предикатом, а он, как видишь, тут нужен именно кастомный. И стабильность unique'а в тему, ибо получается так, что сохраняются конкретные параметры трекеров тех торрентов, которые были выбраны юзером позже всего. - @0xd34df00d:@analizer Тогда придется завести map<string, announce_entry>, дабы хранить остальные параметры. Не уверен, что это лучше. За тему с переменной спасибо, хорошая идея.