2011-06-28 22 views
15

可能性の重複:私は常に経由std::stringの長さを取得し
std::string length() and size() member functionsのstd ::文字列::長さ()はstd ::文字列対::サイズ()

size()メンバー関数正直言って、私は決してlength()メンバー機能があることを知らなかった。まあ、私はちょうどそこにあることを学んだ。だから私は2つの間に何か違いがあるのだろうと思っています。ネガティブ回答の可能性が高い場合、どうして同じように機能する2つのメンバー関数があるのでしょうか?

答えて

10

Nope!変わりはない。この関数のより自然な名前はlength()であり、コンテナとの一貫性のためにはsize()が横に並んでいます。

+3

どのような規格ですか? –

+0

@Armen:私は現時点で私と一緒に本を持っていません:) – Ryan

+3

これは将来的にセマンティクスが変わると問題になります。意味的に(STLセマンティクスとは別に)sizeは文字列のバイト数を反映することができますが、長さはその文字列の "文字数"を参照できます。 ASCIIでは2つの同じ結果が得られますが、これはUTFなどの他のエンコーディングには当てはまりません。 – sitifensys

関連する問題