c++ - array - std:: string length() y size() funciones miembro
strlen (3)
Ruby es igual, por cierto, que ofrece tanto #length
como #size
como sinónimos para la cantidad de elementos en arreglos y hashes (C ++ solo lo hace para cadenas).
Los minimalistas y las personas que creen que "debería haber uno, e idealmente solo hay una manera obvia de hacerlo" (como recita el Zen de Python), creo que en su mayoría estarán de acuerdo con sus dudas, @Naveen, mientras que los fanáticos de Perl " Hay más de una forma de hacerlo "(o la sintaxis de SQL con una gran cantidad de" palabras de ruido "opcionales que dan innumerables formas sintácticas equivalentes idénticas para expresar un concepto) sin duda se quejarán de que Ruby, y especialmente C ++, no irá muy lejos suficiente en ofrecer semejante redundancia sinonimica ;-).
Estaba leyendo las respuestas para esta question y descubrí que en realidad hay un método llamado length()
para std::string
(siempre usé size()
). ¿Hay alguna razón específica para tener este método en la clase std::string
? Leí tanto MSDN como CppRefernce, y parecen indicar que no hay diferencia entre size()
y length()
. Si eso es así, ¿no es más confuso para el usuario de la clase?
Según la documentation , estos son solo sinónimos. size()
está ahí para ser consistente con otros contenedores STL (como vector
, map
, etc. ) y length()
es para ser consistente con la noción intuitiva de la mayoría de las personas de las cadenas de caracteres. La gente suele hablar sobre la longitud de una palabra, oración o párrafo, no de su tamaño, por lo que la length()
está ahí para hacer las cosas más legibles.
longitud de la cadena == cuántos bits tiene esa cadena, tamaño == tamaño de esos bits, En las cadenas ambas son iguales si el editor asigna el tamaño del carácter es de 1 byte