|
Boost Users : |
From: Bo Peng (bpeng_at_[hidden])
Date: 2004-06-14 22:58:02
Bo Peng wrote:
I read /usr/include/c++/3.2.2/bits/stl_vector.h, here is the answer to
my own questions:
> 1. How is size() implemented in vector<>?
end - start pointer. Not a reference to a variable. Too bad.
> 2.Since I will have a lot of such arrays, I would also like to know how
> many additional variables vector<int> keeps. I.e. exactly how big is
> vector<int> arr(5)?
sizeof(int)*5 + sizeof(pointer)*3 since vector keeps three pointers:
start, end and end_of_storage. I am glad to find that when I initialize
vector with a parameter, there is no additional storage allocated.
arr.resize(5) of an empty array will not cause additional storage
allocation either.
> It might be trivial to copy boost::array and add constructor/destructor
> but I do not want to re-invent the wheel.
I am using typedef'ed vector now. I will use a modified boost::array later
because I will be able to improve performance with a const size() and save
some memory by using only one additional data member.
Bo
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