gpt4 book ai didi

c++ - ICU 的 BreakIterator 文档不正确?

转载 作者:太空宇宙 更新时间:2023-11-04 14:16:24 24 4
gpt4 key购买 nike

我使用 ICU 中断迭代器进行了裁剪。在 the example ,他们建议使用以下代码遍历所有边界:

void listWordBoundaries(const UnicodeString& s) {
UErrorCode status = U_ZERO_ERROR;
BreakIterator* bi = BreakIterator::createWordInstance(Locale::getUS(), status);


bi->setText(s);
int32_t p = bi->first();
while (p != BreakIterator::DONE) {
printf("Boundary at position %d\n", p);
p = bi->next();
}
delete bi;
}

这似乎表明 next() 实际上改变了迭代器。然而,documentation似乎表明它的唯一作用是返回一个值。这只是不良文档的一个例子吗?特别是,如果 next() 确实发生了变异,我想知道 last() 是否也在发生变异。

最佳答案

请注意 current() 是 const 而 next()last() 不是。是的,next() 使迭代器前进,last() 将其设置到结束位置。我已经提交了 http://bugs.icu-project.org/trac/ticket/9360修复文档,谢谢。

关于c++ - ICU 的 BreakIterator 文档不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10838367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com