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()纯字符串。