Boost logo

Boost Users :

Subject: Re: [Boost-users] [MultiIndex] insert with and without position hint
From: Joaquin M Lopez Munoz (joaquin_at_[hidden])
Date: 2009-11-24 09:09:42


Igor R <boost.lists <at> gmail.com> writes:

> For some reason, the "hinted" version of insert() returns just an
> iterator, while the "unhinted" one returns pair:
> std::pair<iterator,bool> insert(const value_type& x);
> iterator insert(iterator position,const value_type& x);

The only reson for this dissimilarity is that
standard (unique) associative containers are defined
the same way.
 
> I've got a container with 1 ordered unique index. From one hand, I
> have to know whether the insertion was succesful, but from the other
> hand, 99% of the objects are inserted in their natural ascending
> order, so I use the hinted version:
> container_.insert(container_.end(), newObj);
> So my question is whether there's any performance benefit of the
> "hinted" version in such case, or I can move to the simple one w/o any
> performance loss?

There should be a performance penalty associated
to not using hinted insertion (if you want to
know the impact of this penalty on your particular
app I suggest you do some profiling).

An easy and cheap way to know whether the insertion was
succesful is to check if size() has increased.

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net