我正在阅读这个问题的答案,发现实际上有一种方法length()
需要std::string
(我一直使用size()
)。std::string
在课堂上使用这种方法有什么具体原因吗?size()
我阅读了 MSDN 和 CppReference,它们似乎表明和之间没有区别length()
。如果是这样,是不是让班级的用户更加困惑?
问问题
190105 次
4 回答
410
根据文档,这些只是同义词。 size()
是否与其他 STL 容器(如vector
、map
等)保持一致,并与大多数人对字符串的直观概念保持一致。length()
人们通常谈论一个单词、句子或段落的长度,而不是它的大小,这样length()
是为了让事情更具可读性。
于 2009-05-25T05:53:04.853 回答
17
顺便说一句,Ruby 也是一样的,它同时提供#length
和 #size
作为数组和散列中项目数的同义词(C++ 仅对字符串这样做)。
极简主义者和相信“应该有一种,理想情况下只有一种明显的方式来做到这一点”的人(正如 Python 之禅所背诵的那样),我猜,大多数人会同意你的疑问,@Naveen,而 Perl 的“粉丝”有不止一种方法可以做到这一点”(或者 SQL 的语法带有大量可选的“干扰词”,给出了无数相同的语法形式来表达一个概念)无疑会抱怨 Ruby,尤其是 C++,只是不要走得太远提供这样的同义词冗余就足够了;-)。
于 2009-05-25T06:11:48.550 回答
-2
使用编码练习工具(LeetCode)时,似乎 size() 比 length() 快(虽然基本上可以忽略不计)
于 2019-10-14T09:15:10.507 回答
-16
字符串长度==字符串具有多少位,大小==这些位的大小,如果编辑器分配的字符大小为1字节,则在字符串中两者都是相同的
于 2017-04-05T02:13:20.653 回答