对于.length()和.size(),其实是没有区别的,是因为容器都含有.size()方法,但是对于string类来说,.length()更加直观,所以新加了这个函数,但是其实他俩相当于是同义词。
对于.length()和.size(),其实是没有区别的,是因为容器都含有.size()方法,但是对于string类来说,.length()更加直观,所以新加了这个函数,但是其实他俩相当于是同义词。
(1)当 string 中含有空字符’\0’,使用 strlen() 获取 string 的长度时会被截断,使用成员函数 length() 和 size() 可以返回 string 的真实长度。 毕竟strlen()是C语言中的函数 (2)cout 对 string 输出时,会过滤掉空字符,输出不会被截断。 (3)在构造或者拼接 string 时,建议同时指定 string 的长度 (4...
5、nt max_size()const; /返回string对象中可存放的最大字符串的长度 int size()const; /返回当前字符串的大小 int length()const; /返回当前字符串的长度 bool empty()const; /当前字符串是否为空 void resize(int len,char c);/把字符串当前大小置为len,并用字符c填充不足的部分 string类的输入输出操...
1.length()与size() length是因为沿用C语言的习惯而保留下来的,string类最初只有length,引入STL之后,为了兼容又加入了size,它是作为STL容器的属性存在的,便于符合STL的接口规则,以便用于STL的算法。 string类的size()/length()方法返回的是字节数,不管是否有汉字。
size_type _M_string_length; /// Returns the number of characters in the string, not...
1、size和length size和length其实是一样的, 都代表字符串的长度,但是早期STL还没出现的时候,strling类用的是length,但是后来STL出来后,里面大部分都是用的size,所以为了保持一致性又造了一个size出来,平时用哪个都可以的。 2、capacity 表示string当前的容量,一般来说是默认不算上/0 ...
using namespacestd;intmain(){stringstr1 ="test01";//直接赋值stringstr2(5,'c');// 结果:str2='ccccc',以length为长度的ch的拷贝(即length个ch)stringstr3("hello");//像调函数一样初始化或赋值stringstr4( str3,0,2);//以index为索引开始的子串,长度为length, 或者 以从start到end的元素为初...
至于出现两个功能类似接口的原因: 由于当时string只考虑字符串,同时使用length表示字符串长度是最合理的。但是这样没有考虑到其他类型,导致具有局限性,在树形结构等数据结构情况中不太适合length表示元素大小,STL添加size表示元素大小。length合理,size统一更规范。为什么不删除length,只保留size呢?或者在string容器中只存在...
size() 与 length() 方法底层实现原理完全相同,引入 size() 的原因是为了与其他容器的接口保持一致,一般情况下基本都是用size()。 clear()只是将 string 中有效字符清空,不改变底层空间(capacity)大小。 resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到 n 个,不同的是...