我正在阅读这个问题的答案,发现实际上有一个方法称为std::string(我总是使用size())的长度。在std::string类中有这个方法有什么特殊的原因吗?我读了MSDN和cppreference,它们似乎表明size()和length()之间没有区别。如果是这样的话,是不是会让类的用户更加困惑呢?
当前回答
根据文档,这些只是同义词。size()与其他STL容器(如vector, map等)一致,length()与大多数人对字符串的直观概念一致。人们通常谈论的是一个词、句子或段落的长度,而不是它的大小,因此length()的存在是为了使内容更具可读性。
其他回答
根据文档,这些只是同义词。size()与其他STL容器(如vector, map等)一致,length()与大多数人对字符串的直观概念一致。人们通常谈论的是一个词、句子或段落的长度,而不是它的大小,因此length()的存在是为了使内容更具可读性。
顺便说一下,Ruby也是一样的,它同时提供了#length和#size作为数组和散列中元素数量的同义词(c++只对字符串使用)。
Minimalists and people who believe "there ought to be one, and ideally only one, obvious way to do it" (as the Zen of Python recites) will, I guess, mostly agree with your doubts, @Naveen, while fans of Perl's "There's more than one way to do it" (or SQL's syntax with a bazillion optional "noise words" giving umpteen identically equivalent syntactic forms to express one concept) will no doubt be complaining that Ruby, and especially C++, just don't go far enough in offering such synonymical redundancy;-).
当使用编码实践工具(LeetCode)时,size()似乎比length()更快(尽管基本上可以忽略不计)
字符串长度==字符串有多少位, Size ==这些位的大小, 在字符串中,如果编辑器分配的字符大小为1字节,则两者相同
推荐文章
- 如何构建和使用谷歌TensorFlow c++ api
- 我应该如何从字符串中删除所有的前导空格?- - - - - -斯威夫特
- 将整数转换为字符串,以逗号表示千
- 将JavaScript字符串中的多个空格替换为单个空格
- printf()和puts()在C语言中的区别是什么?
- 断言是邪恶的吗?
- 下面这些短语在c++中是什么意思:0 -,default-和value-initialization?
- 在STL地图中,使用map::insert比[]更好吗?
- C++ Linux的想法?
- jQuery -替换字符串中某个字符的所有实例
- Base64长度计算?
- 如何为Fedora安装g++ ?
- 使用split("|")按管道符号拆分Java字符串
- Std::cin输入空格?
- c++标准是否要求iostreams的性能很差,或者我只是在处理一个糟糕的实现?