StrVec
Class Design
Recall that the vector
class stores its elements in contiguous storage. To obtain acceptable performance, vector
preallocates enough storage to hold more elements than are needed (§ 9.4, p. 355). Each vector
member that adds elements checks whether there is space available for another element. If so, the member constructs an object in the next available spot. If there isn’t space left, then the vector
is reallocated: The vector
obtains new space, moves the existing elements into that space, frees the old space, and adds the new element.
We’ll use a similar strategy in our StrVec
class. We’ll use an allocator
to obtain raw memory (§ 12.2.2, p. 481). Because the memory an allocator
allocates is unconstructed, we’ll use the ...
Get C++ Primer, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.