9
votes

Existe-t-il une différence technique entre les termes «longueur» et «taille» (en programmation, bien sûr)?

Dupliqué possible:
Nombre VS Longueur VS Taille dans une collection

en Java en particulier, sur Strings , vous appelez string.length () , alors que dans liste Vous appelez la liste . Taille () . Existe-t-il une différence technique entre les deux termes, voir en tant que chaîne est vraiment une liste de caractères ?

Tous les commentaires appréciés.


2 commentaires

Peut-être que la différence est que longueur est utilisé avec des séquences (c'est-à-dire une contiguë). Et plus la taille générale est utilisée avec des ensembles (juste une collection d'articles)?


Discussion similaire dans Stackoverflow .Com / Questions / 300522 / ...


6 Réponses :


3
votes

Je ne pense pas. Il est plus probable que l'API fonctionne sur une grande équipe et différentes personnes ont des personnes différentes sur ce que le nom devrait être, en particulier avec des mots que synonyme dans certains contextes, tels que la taille et la longueur dans cette affaire.


0 commentaires

14
votes

En général, la longueur () est utilisée lorsque quelque chose a une longueur constante, tandis que la taille () est utilisée sur quelque chose avec une longueur variable. Passé que, je ne connais aucune bonne raison d'utiliser deux termes presque synonymes.


1 commentaires

En supposant que cette longueur () est pour Imtubiltable types de données tels que string et taille () est pour mutable types de données tels que liste .



2
votes

Comme d'autres ont touché, je pense que c'est une différence sémantique. Les tableaux sont très clairement définis et sont appelés la longueur. Une collection d'objets est plus floue, en partie parce que sa mise en œuvre (est-ce une matrice, une liste liée à un arbre?) N'est pas nécessairement votre préoccupation. Un arbre n'a pas vraiment de longueur, mais il a une taille définitive, la taille peut donc avoir plus de sens sémantiquement.


1 commentaires

Ne pas utiliser la taille pour les tableaux est logique car les tableaux ont une taille mais ce n'est pas le nombre d'éléments. Un tableau int [5] a une longueur de 5 et une taille de 20 (5 éléments et chacun est de 4 octets, faites 20 octets). Mais cela collide avec votre exemple d'arbre, comme si la taille de l'arbre est le nombre d'éléments de l'arborescence, alors comment nommeriez-vous la taille réelle qui en mémoire? Par conséquent, je n'utiliserais pas la taille des arbres non plus mais comptez ou numéros de type . J'évite longueur en général, sauf si nous parlons de choses qui ont une longueur par définition, par exemple. Une chaîne a une longueur (et une taille!) Mais il ne faut pas avoir de compte .



9
votes

Idéalement, Nombre serait le nombre d'éléments, et taille serait la quantité de stockage adoptée (comme dans Tailleof ).

Dans la pratique, les trois (y compris longueur , qui est le plus ambiguë) sont confusés dans de nombreuses bibliothèques largement utilisées, il ne reste plus à tenter d'imposer un motif sur eux à ce stade.


4 commentaires

+1 pour admettre que les programmeurs ne sont pas parfaits.


Parfois, Taille est utilisé pour le nombre d'éléments et capacité est pour la quantité de stockage prise.


@LitB, concernant C ++, n'est-il pas possible que vecteur :: capacité pourrait renvoyer une valeur non nulle, mais aucun stockage n'a encore été attribué? Ce serait un comportement indéfini à tenter d'utiliser le stockage avant qu'un code approprié se produit. Donc, une mise en œuvre pourrait retarder l'allocation réelle jusque-là - et puis, elle pourrait également allouer plus que prévu. Donc, la capacité ressemble davantage à la mise en œuvre de la mise en oeuvre qu'un énoncé réel de l'utilisation du stockage. Nul doute, une telle mise en œuvre briserait tout à fait quelques programmes existants, ceux qui font un v.Reserve (200) , puis vont directement pour & V [100] .


Un tel comportement invaliderait .begin () et .end () , je pense. Cependant, vous êtes garantis qu'ils restent valables pour au moins .capacité () - .Size () push-backs.



4
votes

Pour moi,

"longueur" implique une commande, vous mesurez une longueur du début à la fin.

"Taille" implique la taille de quelque chose sans impliquer une commande, commencer ou se terminer.


0 commentaires

0
votes

Pour moi, "Taille" est utilisé lors de la description d'une structure ou d'une autre façon d'organiser des octets dans un ordinateur. Il ne faut pas nécessairement être instancié. "longueur", d'autre part, implique à quel point un tampon particulier d'octets en mémoire est à un point donné.

E.g. Quelle est la longueur du tampon que vous fournissez? C'est le même nombre d'octets que la taille de la structure x.


0 commentaires