2011-06-28 4 views
15

Possible en double:
std::string length() and size() member functionsstd :: string :: longueur() par rapport à std :: string :: size()

J'ai toujours récupéré la longueur d'un std::string via la fonction membre size(). Pour être honnête, je n'ai jamais su qu'il y avait une fonction membre length() aussi. Eh bien, je viens d'apprendre qu'il y a. Je me demande donc s'il y a une différence entre les deux, et dans l'éventualité d'une réponse négative, pourquoi y aurait-il deux fonctions membres qui font exactement la même chose?

Répondre

10

Non! Aucune différence. Le nom plus naturel pour cette fonction est length() et size() est fourni à côté pour l'uniformité avec des conteneurs.

+3

Quelles normes? –

+0

@Armen: Je n'ai pas le livre avec moi en ce moment :) – Ryan

+3

Ce serait problématique si à l'avenir la sémantique change. Sémantiquement parlant (abstraction faite de la sémantique STL), la taille peut refléter le nombre d'octets de la chaîne) alors que la longueur peut se référer au nombre de "caractères" de cette chaîne. En ASCII les deux donnent le même résultat, mais cela ne tient pas pour d'autres encodages comme UTF etc. – sitifensys