我正在阅读这个问题的答案,发现实际上std::string
有一个名为length()
的方法(我总是使用size()
)。std::string
类为什么要有这个方法?我阅读了MSDN和CppRefernce文档,它们似乎表明size()
和length()
之间没有区别。如果真的如此,那么对于类的用户来说不是更加令人困惑了吗?
size()
的存在是为了与其他STL容器保持一致(如vector
、map
等),而length()
则是为了与大多数人对字符串的直观概念保持一致。人们通常谈论一个单词、句子或段落的长度,而不是大小,因此length()
的存在使事情更易读。#length
和#size
作为数组和哈希表中项目数量的同义词(而C++只对字符串这样做)。当使用编程练习工具(LeetCode)时,size() 似乎比 length() 更快(尽管基本上可以忽略不计)
字符串长度等于字符串包含的位数,大小等于这些位的大小,在字符串中,如果编辑器分配字符大小为1字节,则两者相同。
size()
(以防我使用非字符串类),但在大多数情况下,我在处理普通字符串时使用length()
。 - Mariusstd::string => std::basic_string<char> 字符数
std::wstring => std::basic_string<wchar_t> wchar_t数。
- Sheen Tian