C++标準庫中的string中兩者的源代碼如下:
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);
}
是以兩者沒有差別。
length是因為沿用C語言的習慣而保留下來的,string類最初隻有length,引入STL之後,為了相容又加入了size,它是作為STL容器的屬性存在的,便于符合STL的接口規則,以便用于STL的算法。
string類的size()/length()方法傳回的是位元組數,不管是否有漢字。