本文整理汇总了C++中BinaryHeap::FindFirst方法的典型用法代码示例。如果您正苦于以下问题:C++ BinaryHeap::FindFirst方法的具体用法?C++ BinaryHeap::FindFirst怎么用?C++ BinaryHeap::FindFirst使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BinaryHeap
的用法示例。
在下文中一共展示了BinaryHeap::FindFirst方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FindBestScore
//.........这里部分代码省略.........
//pwCurIndex += 3;
}
// Undo the "allowed" flags.
if ( bNoMadJumps )
{
for ( int i = 0; i < 3; i++ )
{
ScoreVertex *psv = svVertex.item(wPrevIndices[i]);
for ( int j = 0; j < psv->stri.size(); j++ )
{
(*(psv->stri.item(j)))->bAllowed = FALSE;
}
}
}
#ifdef _DEBUG
for ( k = 0; k < iNumTris; k++ )
{
VERIFY ( !ppstCurTris[k]->bAllowed );
VERIFY ( !ppstCurTris[k]->bUsed );
}
#endif
// Now extract from the heap, best score to worst.
// This attempts to get early-outs very quickly and prevent too much recursion.
//WORD *pwBest = NULL;
//WORD *pwCur = NewHeap.FindFirst();
ScoreTri **ppstBest = NULL;
ScoreTri **ppstCur = NewHeap.FindFirst();
//if ( pwCur == NULL )
if ( ppstCur == NULL )
{
// Found nothing that was better.
return fBestSoFar;
}
// Above this score, just don't bother.
float fCutoffScore = fCutoffFactor * NewHeap.GetCurrentSort();
#ifdef _DEBUG
float fPrevScore = 1.0f;
#endif
int iTried = 0;
//while ( pwCur != NULL )
while ( ppstCur != NULL )
{
ScoreTri *pstCur = *ppstCur;
float fThisTriNegScore = NewHeap.GetCurrentSort();
NewHeap.RemoveFirst();
#ifdef _DEBUG
// Check this heap actually works!
VERIFY ( fThisTriNegScore <= fPrevScore );
fPrevScore = fThisTriNegScore;
#endif
if ( fThisTriNegScore < fCutoffScore )