push_back分のメモリが確保できない場合、新たな領域確保後、要素数N-1分コピーされるわけで、
このコストを無視出来るかどうかは、要素数にもよる

push_backで確保できない場合、結局内部的には一定量(実装依存)reserve&コピーされていく。
(例えばVC2012でreserve数の変化は1 2 3 4 6 9 13 19 28 42 63 94 141という感じ)
したがって要素数があらかじめ予想できるならば、最初からreserveしておけば無駄がない。

あらかじめ要素数が予想できない上に、リソースが潤沢なハードなら、reserveせずにvectorの実装に任せてもいいかもね。