/*
* Replace
*
*/
template<class For, class T>
For remove(For first, For last, const T& val);
template<class For, class Pred>
For remove_if(For first, For last, Pred p);
template<class In, class Out, class T>
Out remove_copy(In first, In last, Out res, const T& val);
template<class In, class Out, class Pred>
Out remove_copy_if(In first, In last, Out res, Pred p);
/*
* Usage
*
*/
class located_in {
string town;
public:
located_in(const string& ss) :town(ss) { }
bool operator()(const Club& c) const { return c.town == town; }
};
void f(list<Club>& lc)
{
remove_copy_if(lc.begin(),lc.end(),
output_iterator<Club>(cout),not1(located_in("Koebenhavn")));
}