问题的答案,发现实际上有一种用于length()
的方法,称为
std::string
(我总是使用
size()
)。在
std::string
类中使用此方法有什么具体原因吗?我读了MSDN和CppReference,它们似乎表明
size()
和
length()
之间没有区别。如果是这样,不是会让类的用户更加困惑吗?
文档,这些只是同义词。 size()
是为了与其他STL容器(如
vector
、
map
、等)保持一致,
length()
是为了与大多数人对字符串的直观概念保持一致。人们通常谈论单词、句子或段落的length,而不是其大小,因此
length()
的存在是为了让内容更具可读性。
#length
和
#size
作为数组和散列中项目数量的同义词(C++ 仅对字符串提供此功能)。极简主义者和那些相信“应该有一种,最好只有一种,明显的方法来做到这一点”(正如 Python 之禅所背诵的那样)的人,我想,大多数人都会同意你的怀疑,@Naveen,而 Perl 的粉丝“有不止一种方法可以做到这一点”(或者 SQL 的语法带有无数可选的“干扰词”,给出了无数相同的等效语法形式来表达一个概念)无疑会抱怨 Ruby,尤其是 C++,只是不去提供这种同义冗余已经足够了;-).