赞
踩
打开监视窗口,可以看到 string 类中有个成员变量:数组 _Buf
该数组空间大小为 16字节
上面存入不同长度的字符串时,可以发现两者存储的位置不同
当存入字符串的长度小于 16字节时,就会存入自己的成员:数组中
当大于16字节,会到内存中开辟空间,使用成员变量:指针 _Ptr 指向字符串
类中 _Buf 数组的设计:小字符串无需存储在内存中,而是存在自己的数组中,以空间换取时间,提高不少时间效率,同时减少了内存碎片的产生
注意:实际上最多只能存入 15个有效字符,第16个字符是用于存字符串结尾的 ‘\0’
没扩容前,capacity 就是固定为 15 字节大小:如下面字符串本身大小为 6(包括尾部的 ‘0’) ,而capacity 固定为 15,不是 6
⭐
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。