The length() function returns the number of elements
in the current string, performing the same role
as the size() function.

らしいので、まったく同じということなんですね。
length() も size() も内部では '\0' をスキャンしているのでしょうか?
あと、resize() と reserve() の違いがわかりません。