Ну на сколько я знаю, push_back выделяет не 1 элемент, а сразу приличный такой блок памяти и потом просто пихает элементы, вставляемые при помощи след. вызовов push_back пока не дойдёт до конца массива. Тогда след. push_back расширит массив ещё больше(как правило в 2 раза вроде) и по новой.