先说结论: 没有区别
length()
是因为沿用C语言的习惯而保留下来的。
string类最初只有length()
,引入STL之后,为了兼容又加入了size()
,它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。
源代码:
size_type __CLR_OR_THIS_CALL length() const {
// return length of sequence
return (_Mysize);
}
size_type __CLR_OR_THIS_CALL size() const {
// return length of sequence
return (_Mysize);
}
C++中对length的解释
Return length of string
Returns the length of the string, in terms of bytes.
This is the number of actual bytes that conform the contents of the string, which is not necessarily equal to its storage capacity.
Note that string objects handle bytes without knowledge of the encoding that may eventually be used to encode the characters it contains. Therefore, the value returned may not correspond to the actual number of encoded characters in sequences of multi-byte or variable-length characters (such as UTF-8).
Both string::size and string::length are synonyms and return the same value.
C++中对size的解释
标签:return,string,bytes,length,characters,size From: https://www.cnblogs.com/happinesspills/p/16613016.htmlReturn length of string
Returns the length of the string, in terms of bytes.
This is the number of actual bytes that conform the contents of the string, which is not necessarily equal to its storage capacity.
Note that string objects handle bytes without knowledge of the encoding that may eventually be used to encode the characters it contains. Therefore, the value returned may not correspond to the actual number of encoded characters in sequences of multi-byte or variable-length characters (such as UTF-8).
Both string::size and string::length are synonyms and return the exact same value.