Boost logo

Boost :

Subject: Re: [boost] [MultiIndex] Hinted insertion for multiple indices?
From: Gareth.Sylvester-Bradley_at_[hidden]
Date: 2018-07-03 13:12:05


At 02 July 2018 16:51, Joaquin M López Muñoz wrote:
> El 29/06/2018 a las 9:12, Gareth Sylvester-Bradley via Boost escribió:
> > Is there a way to provide insertion hints for multiple indices in
> > a multi_index_container?
> >
> > In a particular example, I have a container with several ordered_non_unique
> > indices, and for the majority of insertions, the value will end up at the
> > end of these indices.
> >
> > I'm looking for a way to provide the index.end() hint for all of these indices?
> > (Or maybe alternatively, to relax the stability/insertion-order guarantee?)
>
> Hi Gareth,
>
> Just use hinted insertion like:
>
>   m.insert(m.end(),x);
>
> As it happens, the hint in hinted insertion is used for *all* indices, so providing m.end()
> does indeed indicate that insertion should happen as close as possible to the end of
> *each* index.
>
> Is this what you're after? Best regards,
>
> Joaquín M López Muñoz

Thanks, Joaquín, that makes sense.

I suppose it means that it's not currently possible to optimise an insertion that you know would put the item at the end of one index and the beginning of another, or more generally to pass e.g. a tuple of index positions (unless they correspond to an existing item), but I don't need that right now, it's just the feature I thought I was looking for!

Can I still get the bool flag that indicates whether insertion took place? I guess I can use pre/post size() otherwise...

Thanks,
Gareth



Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk