"Dictionary Based Iterator" isn't a different API. Just create an ICU word break iterator with the appropriate locale ID.
There's a C/C++ sample that comes with ICU in icu/source/samples/break
Also the following sample code shows word breaking: http://source.icu-project.org/repos/icu/icuapps/trunk/iucsamples/c/s24_brkw/s24_brkw.cpp http://source.icu-project.org/repos/icu/icuapps/trunk/iucsamples/c/s23_brki/
probably something like this:
BreakIterator *wordIterator = BreakIterator::createWordInstance(Locale("zh"), status);
UnicodeString text = "Unicode provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language.";
wordIterator->setText(text);
int32_t breakCount = 0;
int32_t start = wordIterator->first();
for(int32_t end = wordIterator->next();
end != BreakIterator::DONE;
start = end, end = wordIterator->next())
{
breakCount++;
}
delete wordIterator;