vector
использует std::allocator
по умолчанию, и std::allocator
требуется, чтобы использовать глобальный оператор new (то есть ::operator new(size_t)
) для получения памяти (20.4.1.1).Тем не менее, не требуется вызывать его ровно один раз за вызов allocator::allocate
.
Так что да, если вы замените глобальный оператор новым, vector
будет использовать его, хотя и не обязательно таким способом, который действительнопозволяет вашей реализации эффективно управлять памятью.Любые специальные приемы, которые вы хотите использовать, могут, в принципе, быть совершенно неактуальными, если std::allocator
захватить память по 10 МБ и выделить ее.
Если у вас есть конкретная реализация, вы можете посмотреть, какего vector
ведет себя, что, вероятно, достаточно хорошо, если ваша запланированная стратегия распределения изначально зависит от платформы.