This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: vector<> can probably never grow to it's maximum size!


Dhruv Matani wrote:

Yes, but isn't it better to have the container grow somehow rather than
have it throw bad_alloc even though it can grow by whatever little it
can in situations where the memory available is low.



As has I think been said before, on this particular point I would have to say no, it's not better. In order to be a satisfying implementation, the size has to continue growing exponentially. One way around this would be to say that you are going to make sure the container grows to at least (say) 105% of it's original size, else you don't bother. In most cases I imagine that if you can't grow a structure by at least that much, then probably the tiny amount extra you could provide isn't going to be worth it, and as long as you fix some fraction you promise to grow by, then you still remain within the standard (although possibly still quite inefficent)

The other option of course is to only do this kind of 'low memory' growth once, although that would then require some kind of extra flag.

Chris


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]