Boost logo

Boost :

Subject: Re: [boost] [devector] optimum growing/insertion policy
From: Thorsten Ottosen (tottosen_at_[hidden])
Date: 2017-10-18 13:18:32


Den 18-10-2017 kl. 15:10 skrev Joaquin M López Muñoz via Boost:
> El 18/10/2017 a las 13:48, Thorsten Ottosen via Boost escribió:
>> Den 18-10-2017 kl. 11:36 skrev Joaquin M López Muñoz via Boost:
>>> El 16/10/2017 a las 19:38, Thorsten Ottosen via Boost escribió:
>>
>>>> Maybe this is lost to me in the details, but given code that works
>>>> for vector:
>>>>
>>>>   vector<int> v;
>>>>   ...
>>>>   v.reserve( v.size() + N );
>>>>
>>>> which guarantees no exceptions and no reallocations, how would that
>>>> work with your policy?

>> Yes, sorry for being unclear, I'm talking about the guarantee given to
>> push_back() and insert() of N elements after the call to reserve().
>
> OK, now I get it. Well, my position is that reserve should be replaced by
> some mechanism for explicitly controlling free space at each end. Then
> the user
> can rely on the guarantee that she can do as many as
> [back|front]_free_capacity() push_[back|front] ops without rellocation.

and what about insert()? Do we then say if you want to avoid
reallocations, you must allocate twice the needed memory?

For vector we do not reallocate on insert().

(I'm not saying that is the wrong answer, I would just like to know that
the answer is).

-Thorsten


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