/*
* Unique
*
*/
template<class For> For unique(For first, For last);
template<class For, class BinPred> For unique(For first, For last, BinPred p);
template<class In, class Out> Out unique_copy(In first, In last, Out res);
template<class In, class Out, class BinPred>
Out unique_copy(In first, In last, Out res, BinPred p);
/*
* Usage
*
*/
void f(list<string>& ls, vector<string>& vs)
{
ls.sort(); // list sort (_cont.splice_)
unique_copy(ls.begin(),ls.end(),back_inserter(vs));
}
/*
* Possible implementation
*
*/
template <class For> For unique(For first, For last)
{
first = adjacent_find(first,last);
return unique_copy(first,last,first);
}