strlen
复杂度为O(1),因为字符串结构保存了字符串长度,但是mb_strlen
呢?请解释一下,为什么?
答案 0 :(得分:1)
在最坏的情况下看source code是O(N)。
mbtab = encoding->mblen_table;
n = 0;
p = string->val;
k = string->len;
/* count */
if (p != NULL) {
while (n < k) {
m = mbtab[*p];
n += m;
p += m;
len++;
};
}