
On 2/22/2012 7:23 PM, Steven Watanabe wrote:
AMDG
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 http://tinyurl.com/86arysc, what you want is boost::erase(vec, boost::uniqueboost::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. -- Bill