Boost logo

Boost Users :

Subject: Re: [Boost-users] [range] unique
From: Bill Buklis (boostusr_at_[hidden])
Date: 2012-02-22 20:34:23

On 2/22/2012 7:23 PM, Steven Watanabe wrote:
> On 02/22/2012 04:31 PM, Bill Buklis wrote:
>> Given that std::unique returns an iterator to the first non-unique value
>> you can do something like:
>> vec.erase( std::unique(vec.begin(), vec.end(), vec.end() );
>> However, boost::unique returns the range of the "unique" values. I would
>> expect instead that it would return the range of non-unique values so
>> that it matched the standard algorithm version, which effectively
>> returns the range of non-unique values. Correspondingly trying:
>> boost::erase( vec, boost::unique(vec) );
>> eliminates the complete opposite of what the standard version does. I
>> can get around this by calling:
> According to, what you want is
> boost::erase(vec, boost::unique<boost::return_found_end>(vec))

Thanks. I missed that bit of documentation. Or at least I wasn't
thinking about unique at all at the time I first read it. That makes
sense and allows quite a bit of flexibility.


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at