Boost Users :
Subject: Re: [Boost-users] Performance optimization in Boost using std::vector<>
From: Adam Romanek (romanek.adam_at_[hidden])
Date: 2015-02-23 02:25:17
On 22.02.2015 08:17, chmhou_at_[hidden] wrote:
>>not sure if the OP needs std::vector but... I'd recommend
>>boost::container::vector which has a dedicated constructor  and
>>resize()  method tagged with default_init_t argument, both of which
>>default initialize the values in the vector. For primitives it basically
>>means it leaves them uninitialized, hence there's no overhead when the
>>vector is to be filled with real data soon.
> Hi Adam
> As following your point, the benefit of boost::container::vector supported the "default_init_t" method so that it 's quite convince and safety comparing with std::vector<>
> is that right ? are there additional advantages ?
Not sure what convenience and safety you refer to. To me both of these
aspects are exactly the same for both containers.
The difference is that boost::container::vector with "default_init_t"
uses *default initialization* and std::vector uses *value
initialization* to initialize the data they hold. The difference has
huge impact on performance as default initialization for primitive types
is a no-op.
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