vector::reserve does not reserve more space than requested; growth only happens in emplace_back
measure single-element std::vector vs small_vector