哪个复杂度mb_strlen?
Which complexity mb_strlen?
strlen
复杂度为O(1),因为字符串结构保存了字符串长度,但是mb_strlen
呢?请解释一下,为什么?
查看 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++;
};
}
strlen
复杂度为O(1),因为字符串结构保存了字符串长度,但是mb_strlen
呢?请解释一下,为什么?
查看 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++;
};
}