Even virtuals don't take up space in the class instance; merely the vptr does. (That's for most C++ implementatons - in theory they're free to do something different.)

However, I think sean meant member variables: the size tracker and the pointer to the heap memory, and possibly member variables of the allocator.

sqrt() is part of the CRT, not the STL. That aside, it's rather unlikely that you come up with a faster sqrt() than the one you have, while keeping its precision.for example, the 'sqrt()' function. if you've come up with a better/faster algorithm of finding the square root of a number, then by all means, use it! if not, just stick to the sqrt() function provided by the STL.

If you don't need that precision, it's a different story.