std:: funciones miembro string length() y size()


Estaba leyendo las respuestas para esta pregunta 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? Leo tanto MSDN como CppRefernce, y parecen indicar que no hay diferencia entre size() y length(). Si eso es así, no está haciendo más confuso para el usuario de la clase?

Author: ネロク, 2009-05-25

3 answers

Según la documentación , estos son solo sinónimos. size() ¿ hay que ser consistente con otros contenedores STL (como vector, map, etc.) y length() debe ser consistente con la noción intuitiva de la mayoría de las personas de cadenas de caracteres. La gente suele hablar de la longitud de una palabra, frase o párrafo, no de su tamaño, por lo que length() está ahí para hacer las cosas más legibles.

 258
Author: tgamblin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-23 19:44:52

Ruby es lo mismo, por cierto, ofreciendo ambos #length y #size como sinónimos para el número de elementos en matrices y hashes (C++ solo lo hace para cadenas).

Los minimalistas y las personas que creen que "debería haber una, e idealmente solo una, forma obvia de hacerlo" (como recita el Zen de Python) estarán, supongo, en su mayoría de acuerdo con sus dudas, @Naveen, mientras que los fans de Perl "Hay más de una manera de hacerlo "(o la sintaxis de SQL con un bazillion opcional "palabras de ruido" formas sintácticas idénticas para expresar un concepto) sin duda se quejarán de que Ruby, y especialmente C++, simplemente no van lo suficientemente lejos en ofrecer tal redundancia sinonímica;-).

 15
Author: Alex Martelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-25 06:11:48

Longitud de la cadena = = cuántos bits tiene esa cadena, tamaño = = tamaño de esos bits, En cadenas ambas son iguales si el editor asigna tamaño de carácter es 1 byte

 -5
Author: user7817690,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-05 02:13:20