本文整理汇总了C++中translist::Iter::increment方法的典型用法代码示例。如果您正苦于以下问题:C++ Iter::increment方法的具体用法?C++ Iter::increment怎么用?C++ Iter::increment使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类translist::Iter
的用法示例。
在下文中一共展示了Iter::increment方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: outListCovers
bool FsmAp::outListCovers( StateAp *state )
{
/* Must be at least one range to cover. */
if ( state->outList.length() == 0 )
return false;
/* The first must start at the lower bound. */
TransList::Iter trans = state->outList.first();
if ( keyOps->minKey < trans->lowKey )
return false;
/* Loop starts at second el. */
trans.increment();
/* Loop checks lower against prev upper. */
for ( ; trans.lte(); trans++ ) {
/* Lower end of the trans must be one greater than the
* previous' high end. */
Key lowKey = trans->lowKey;
lowKey.decrement();
if ( trans->prev->highKey < lowKey )
return false;
}
/* Require that the last range extends to the upper bound. */
trans = state->outList.last();
if ( trans->highKey < keyOps->maxKey )
return false;
return true;
}
示例2: compressTransitions
/* Merge neighboring transitions go to the same state and have the same
* transitions data. */
void FsmAp::compressTransitions()
{
for ( StateList::Iter st = stateList; st.lte(); st++ ) {
if ( st->outList.length() > 1 ) {
for ( TransList::Iter trans = st->outList, next = trans.next(); next.lte(); ) {
Key nextLow = next->lowKey;
nextLow.decrement();
if ( trans->highKey == nextLow && trans->toState == next->toState &&
CmpActionTable::compare( trans->actionTable, next->actionTable ) == 0 )
{
trans->highKey = next->highKey;
st->outList.detach( next );
detachTrans( next->fromState, next->toState, next );
delete next;
next = trans.next();
}
else {
trans.increment();
next.increment();
}
}
}
}
}