Хотя это уже особенное, вектор должен выделяться в блоках размером 8. Я также знаю, что некоторые люди работают над тем, чтобы malloc возвращала «истинный размер» любых выделенных блоков, поэтому, если выделенный блок будет ввели неизбежные отходы, вместо этого вектор с пользой использует пространство.
Когда мы переходим на 64-битные ОС, объем памяти внезапно становится (известные последние слова) больше, чем кто-либо когда-либо приближается к заполнению, поэтому становится гораздо разумнее выделять большие блоки виртуальной памяти и заполнять их всякий раз, когда. Перемещение объектов обходится дорого, и на практике это пустая трата времени, поскольку мы не перемещаем вещи, потому что физическая память ограничена, просто из одного виртуального места в другое!