Boost logo

Boost :

Subject: Re: [boost] best way to remove duplicates from forwardIterator [startIter, endIter]
From: David Abrahams (dave_at_[hidden])
Date: 2009-02-24 12:22:55

on Tue Feb 24 2009, Sandeep Gupta <> wrote:

> Hi,
> Given a collection in terms of [startIter, endIter] how can obtain
> [uniqBeginIter, uniqEndIter] that represents unique elements of the
> original container.
> I can always explicitly instantiate a set S of [startIter, endIter]
> and use [S.begin(), S.end()]. Is it possible to express this in terms
> of algorithms.
> Please note that I won't be able to use std::sort as startIter does
> not conform to RandomAccessIterator. Its a forward iterator.

If they are not already arranged so that all the equal elements are
adjacent to one another, your best bet is set<> (or unordered_set<>).

FWIW, It is possible to write a conforming std::sort that works on
forward iterators, but for some reason the standard only requires sort
to work on random access iterators.

Dave Abrahams
BoostPro Computing

Boost list run by bdawes at, gregod at, cpdaniel at, john at