Я читал ответы на этот вопрос и обнаружил, что на самом деле существует метод, называемый length()
для std::string
(я всегда использовал size()
). Есть ли конкретная причина для использования этого метода в классе std::string
? Я прочитал и MSDN, и CppRefernce, и они, кажется, указывают на то, что нет никакой разницы между size()
и length()
. Если это так, разве это не вводит в заблуждение пользователя класса?
Std::string функции length() и size()
Ответ 1
Ответ 2
Ruby точно так же, btw, предлагая как #length
, так и #size
как синонимы количества элементов массивов и хэшей (С++ делает это только для строк).
Минималисты и люди, которые считают, что "должен быть один, и в идеале только один, очевидный способ сделать это" (как читает Zen of Python), я думаю, в основном согласен с вашими сомнениями, @Naveen, в то время как поклонники Perl "Там более чем один способ сделать это" (или синтаксис SQL с дополнительными "шумными словами" bazillion, дающими несколько одинаково эквивалентных синтаксических форм для выражения одной концепции), несомненно, будут жаловаться на то, что Ruby, и особенно С++, t достаточно далеко, предлагая такую синонимическую избыточность; -).
Ответ 3
При использовании инструментов практики кодирования (LeetCode) кажется, что size() быстрее, чем length() (хотя в основном незначительно)
Ответ 4
длина строки == количество бит, которые содержат строку, size == размер этих бит, В строках оба одинаковы, если редактор выделяет размер символа, составляет 1 байт