Answers:
根据文档,这些只是同义词。 size()
在那里,以便与其他STL容器(如一致vector
,map
,等),并length()
是要与大多数人的字符串的直观概念是一致的。人们通常谈论的是单词,句子或段落的长度,而不是其大小,因此length()
可以使内容更具可读性。
std::string=> std::bacsic_string<char> count of char
std::wstring => std::basic_string<wchar_t> count of wchar_t.
Ruby也是一样,顺便说一句,它为数组和散列中的项目数量同时提供#length
和 #size
作为同义词(C ++仅对字符串提供)。
极简主义者和相信“应该有一个,并且理想情况下只有一个明显的方法”的人(正如Python的Zen所言),我想大多数人会同意@Naveen的疑问,而Perl的粉丝有多种方法可以做到这一点”(或者SQL的语法带有不计其数的可选“噪音词”,给出了无数相同等价的句法形式来表达一个概念)无疑会抱怨Ruby,尤其是C ++,只是走的太远了提供这样的同义词冗余就足够了;-)。
size()
(以防我曾经使用非字符串类),但是大多数时候我都使用length()
纯字符串。