先说结论:没有区别 length()是因为沿用C语言的习惯而保留下来的。 string类最初只有length(),引入STL之后,为了兼容又加入了size(),它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。 源代码: size_type __CLR_OR_THIS_CALLlength()const{// return length of sequencereturn(_Mysize);...
等于begin()到end()之间的距离.length()是考虑到传统C函数strlen而对应设置的,而size()是考虑到string...
二者的微小区别就是:size() 一般用作返回容器大小的方法 length() 一般用作返回一个序列的长度 但是无论用size还是length,返回的结果都是一样的。
唯一区别:身份区别 length()代替传统的C字符串,所以针对C中的strlen,给出相应的函数length()。另一个身份是可以用作STL容器,所以按照STL容器的惯例给出size()。C++中string成员函数length()等同于size(),功能没有区别。C++标准库中的string中两者的源代码如下:size_type __CLR_OR_THIS_CALL ...
所以两者没有区别。 length是因为沿用C语言的习惯而保留下来的,string类最初只有length,引入STL之后,为了兼容又加入了size,它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。 string类的size()/length()方法返回的是字节数,不管是否有汉字。
//返回string长度,单位字节 size_t length() const noexcept; //返回string长度,单位字节。作用等同于length() size_t size() const noexcept; //C标准库函数,返回C风格字符串长度,单位字节 size_t strlen ( const char * str ); 实际项目中,C++ string获取长度时,我们经常使用以下两种方法。 代码语言:javas...
没区别,看源码就知道了。
size()、length()是c++中string的类的方法,只有string类的对象才可以用该方法,而字符串数组不可用,而strlen、strcpy等源于C语言的字符串处理函数库,需要include<string.h>,同时也只有字符串数组才可以用 size()与length()完全等同,遇到空字符不会被截断,可以返回字符串真实长度 ...
length()是考虑到传统C函数strlen而对应设置的,而size()是考虑到string作为一个STL容器,应该具有的...