Same in C++. There's `std::vector::reserve`, which grows the vector's underlying physical buffer, without logically adding any new elements. If you `reserve` enough capacity before inserting anything, it's even a `O(1)` operation.
In any case, while C++ has lots of defects, “loss of control relative to what C gives you” isn't one of them.