В случае Векторов: Нижняя запись не вставляется - она перезаписывается.
Остальная часть этого поста содержит информацию из пунктов 1-5 из Effective STL .
Если вы знаете диапазон ваших данных заранее - и размер фиксирован - и вы не будете вставлять в места, где над ними есть данные - тогда вы можете использовать вставку в векторы без неприятных побочных эффектов.
Однако в общем случае вставки векторов имеют такие значения, как смещение элементов вверх и удвоение памяти при исчерпании (что вызывает поток копий из объектов старого вектора в места в новом векторе), когда вы делаете ad hoc вставок. Векторы предназначены для тех случаев, когда вам известны характеристики местности ваших данных ..
Векторы поставляются с функцией вставки-члена ... и эта функция очень умна в большинстве реализаций, поскольку она может выводить оптимизации из предоставленных вами итераторов. Вы не можете просто использовать это?
Если вы хотите сделать специальные вставки данных, вы должны использовать список. Возможно, вы можете использовать список для сбора данных, а затем после его завершения заполнить вектор, используя вставку на основе диапазона или конструктор на основе диапазона?