Я читал ответы на этот вопрос и обнаружил, что на самом деле есть метод, называемыйlength()
для std::string
(я всегда использовал size()
). Есть ли какая-то конкретная причина для использования этого метода в std::string
классе? Я прочитал и MSDN и CppRefernce, и они, кажется, указывают, что нет никакой разницы между size()
и length()
. Если это так, разве это не запутывает пользователя класса?
265
size()
(в случае, если я когда-либо использую не строковые классы), но большую часть времени я используюlength()
при работе с простыми строками.std::string=> std::bacsic_string<char> count of char
std::wstring => std::basic_string<wchar_t> count of wchar_t.
Руби тоже самое, кстати, предлагая
#length
и#size
качестве синонимов для количества элементов в массивах и хешах (C ++ делает это только для строк).Минималисты и люди, которые считают, что «должен быть один, а в идеале только один, очевидный способ сделать это» (как рассказывает Zen of Python), я думаю, в основном согласятся с вашими сомнениями, @Naveen, в то время как поклонники Perl's » Существует более одного способа сделать это »(или синтаксис SQL с необязательными« шумовыми словами », дающими множество различных идентично эквивалентных синтаксических форм для выражения одной концепции), без сомнения, будет жаловаться, что Ruby, и особенно C ++, просто не идут далеко Достаточно предложить такую синонимическую избыточность ;-).
источник
При использовании инструментов практики кодирования (LeetCode) кажется, что size () быстрее, чем length () (хотя в основном незначительный)
источник
длина строки == сколько битов в этой строке, размер == размер этих битов, строки одинаковы, если редактор выделяет размер символа 1 байт
источник