std :: string length()和size()成员函数

我正在阅读这个问题的答案,发现实际上有一个名为length()的string(我总是使用size())。 在string类中使用此方法是否有任何特定的原因? 我读了MSDN和CppRefernce,他们似乎表明size()和length()之间没有区别。 如果是这样的话,对于这个class级的使用者来说是不是更令人困惑呢?

根据文档 ,这些只是同义词。 size()与其他STL容器(如vectormap )是一致的, length()与大多数人直观的string概念是一致的。 人们通常会谈论单词,句子或段落的长度 ,而不是它的大小,所以length()可以使事情更具可读性。

Ruby也是一样,顺便说一句,同时提供#length #size作为数组和哈希值的同义词(C ++只对string进行操作)。

我认为,极less数主义者和那些相信“应该有一个,理想上只有一个,明显的方式来做到这一点”的人(比如Python的禅宗朗诵),大多数人会同意你的怀疑@Naveen,而Perl的“有不止一种方法可以做到这一点“(或者是SQL语法中可选的”噪声词“给出了许多完全相同的语法forms来expression一个概念)毫无疑问,Ruby,特别是C ++不会走得太远足以提供这样的同义冗余;-)。

string的长度==string有多less位,大小==这些位的大小,如果编辑器分配字符的大小,在string中都是相同的是1个字节