Я пытаюсь использовать remove_if для массива.Массив содержит объекты песен, которые содержат 2 строковых свойства (исполнитель и заголовок).У меня оператор bool equals, но есть проблемы с реализацией.Ниже приведен оператор равно моей Песне:
bool Song::operator==(const Song& s) const
{
return (title_ == s.GetTitle() && artist_ == s.GetArtist()) ? true : false;
}
У меня есть другая функция, которая должна удалить песню, если либо заголовок, либо исполнитель соответствуют переданным в нее параметрам.Затем возвращает количество удаленных песен:
unsigned int Playlist::RemoveSongs(const string& title, const string& artist)
{
int startSize = songs_.size();
Song s = Song(title,artist);
// below are some of the things I've attempted from documentation
//songs_.remove_if(std::bind2nd(std::ptr_fun(Song::operator()(s))));
//std::remove_if(songs_.begin(),songs_.end(),s);
int endSize = songs_.size();
return startSize - endSize;
}