std::vector<CustomClass *> whatever(20000);
або:
std::vector<CustomClass *> whatever;
whatever.reserve(20000);
Перший встановлює фактичний розмір масиву - тобто робить його вектором 20000 покажчиків. Останній залишає вектор порожнім, але залишає простір для 20000 покажчиків, тож ви можете вставити (до) стільки, скільки без нього потрібно перерозподіляти.
Принаймні, з мого досвіду, досить незвично для будь-якого з них важливо змінити продуктивність - але це може вплинути на правильність за певних обставин. Зокрема, доки не відбудеться перерозподіл, ітератори у вектор гарантовано залишаться дійсними, і щойно ви встановите розмір / зарезервований простір, ви гарантовано не матимете перерозподілу, доки ви не зробите це " t збільшити розмір понад це.
std::vector
якій довідці є конструктор і дві функції для цього , залежно від того, що краще відповідає вашим потребам.