2011-06-28 28 views
15

Duplicar posibles:
std::string length() and size() member functionsstd :: string :: longitud() vs. std :: string :: size()

siempre Recuperé la longitud de una vía std::string la función de miembro size(). Para ser sincero, nunca supe que había una función de miembro length() también. Bueno, acabo de enterarme que hay. Entonces, me pregunto si hay alguna diferencia entre los dos, y en el caso probable de una respuesta negativa, ¿por qué habría dos funciones miembro que hacen exactamente lo mismo?

Respuesta

10

¡No! Ninguna diferencia. El nombre más natural para esta función es length() y size() se proporciona junto a la uniformidad con los contenedores.

+3

¿Qué estándares? –

+0

@Armen: No tengo el libro conmigo en este momento :) – Ryan

+3

Esto sería problemático si en el futuro cambia la semántica. Semánticamente hablando (aparte de la semántica de STL), el tamaño puede reflejar el número de bytes de la cadena, mientras que la longitud puede referirse al número de "caracteres" de esa cadena. En ASCII los dos dan el mismo resultado, pero esto no es válido para otras codificaciones como UTF, etc. – sitifensys

Cuestiones relacionadas