Eedu

快速获取字符串长度

避免缓冲区溢出

降低空间分配次数提升内存使用效率

1.快速获取字符串长度


在看下上面的SDS结构体:


struct sdshdr{

// 记录已使用长度

int len;

// 记录空闲未使用的长度

int free;

// 字符数组

char[] buf;

};

复制代码

由于在SDS里存了已使用字符长度len,所以当想获取字符串长度时直接返回len即可,时间复杂度为O(1)。如果使用C语言的字符串的话它的字符串长度获取函数时间复杂度为O(n),n为字符个数,因为他是从头到尾(到空字符'\0')遍历相加。

你可能感兴趣的:(Eedu)