std::string length() et size() des fonctions de membre du
Je lisais les réponses à cette question et a constaté qu'il est en fait une méthode appelée length()
pour std::string
(j'ai toujours utilisé size()
). Est-il une raison particulière pour avoir cette méthode dans std::string
classe? J'ai lu les deux MSDN et CppRefernce, et ils semblent indiquer qu'il n'y a pas de différence entre size()
et length()
. Si c'est le cas, n'est-ce pas faire plus de confusion pour l'utilisateur de la classe?
Vous devez vous connecter pour publier un commentaire.
Que par la la documentation, ce sont juste des synonymes.
size()
est là pour être cohérent avec les autres conteneurs STL (commevector
,map
, etc.) etlength()
est d'être compatible avec la plupart des peuples notion intuitive de chaînes de caractères. Habituellement, les gens parlent d'un mot, d'une phrase ou d'un paragraphe longueur, pas sa taille, de sortelength()
est là pour rendre les choses plus lisibles.size()
(Dans le cas où j'utilise jamais non-classes de chaînes de caractères), mais la plupart du temps j'utiliselength()
lorsque l'on travaille avec la plaine des chaînes de caractères.std::string=> std::bacsic_string<char> count of char
std::wstring => std::basic_string<wchar_t> count of wchar_t.
Ruby est la même chose, btw, offrant à la fois
#length
et#size
comme des synonymes pour le nombre d'éléments dans les tableaux et les tables de hachage (C++ seulement pour les chaînes).Les minimalistes et les gens qui croient "il devrait y avoir un, et, idéalement, un seul, moyen évident de le faire" (comme le Zen de Python récite) sera, je pense, plutôt d'accord avec vos doutes, @Naveen, tandis que les amateurs de Perl "Il n'y a plus d'une façon de le faire" (ou SQL syntaxe avec un bazillion facultatif "le bruit des mots" donner je ne sais combien à l'identique équivalent formes syntaxiques pour exprimer un concept) sera sans aucun doute se plaindre que Ruby, et surtout C++, il suffit de ne pas aller assez loin en offrant une telle synonymical redondance;-).
Lors de l'utilisation de pratiques de codage des outils(LeetCode), il semble que la taille() est plus rapide que la longueur() (bien que fondamentalement négligeable)
longueur de chaîne ==combien de bits que la chaîne,
taille==taille de ces bits,
Dans les deux chaînes sont les mêmes, même si l'éditeur alloue la taille des caractères est de 1 octet