本文整理汇总了C++中CList::PtNext方法的典型用法代码示例。如果您正苦于以下问题:C++ CList::PtNext方法的具体用法?C++ CList::PtNext怎么用?C++ CList::PtNext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CList
的用法示例。
在下文中一共展示了CList::PtNext方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
//---------------------------------------------------------------------------
// @function:
// CListTest::EresUnittest_Navigate
//
// @doc:
// Various navigation operations
//
//---------------------------------------------------------------------------
GPOS_RESULT
CListTest::EresUnittest_Navigate()
{
// create memory pool
CAutoMemoryPool amp;
IMemoryPool *pmp = amp.Pmp();
CList<SElem> listFwd;
listFwd.Init(GPOS_OFFSET(SElem, m_linkFwd));
CList<SElem> listBwd;
listBwd.Init(GPOS_OFFSET(SElem, m_linkBwd));
ULONG cSize = 10;
SElem *rgelem = GPOS_NEW_ARRAY(pmp, SElem, cSize);
// insert all elements in reverse order,
// i.e. list is in same order as array
for(ULONG i = 0; i < cSize; i++)
{
listBwd.Prepend(&rgelem[i]);
listFwd.Append(&rgelem[i]);
}
// use getnext to walk list
SElem *pelem = listFwd.PtFirst();
for(ULONG i = 0; i < cSize; i++)
{
GPOS_ASSERT(pelem == &rgelem[i]);
pelem = listFwd.PtNext(pelem);
}
GPOS_ASSERT(NULL == pelem);
// go to end of list -- then traverse backward
pelem = listFwd.PtFirst();
while(pelem && listFwd.PtNext(pelem))
{
pelem = listFwd.PtNext(pelem);
}
GPOS_ASSERT(listFwd.PtLast() == pelem);
for(ULONG i = cSize; i > 0; i--)
{
GPOS_ASSERT(pelem == &rgelem[i - 1]);
pelem = listFwd.PtPrev(pelem);
}
GPOS_ASSERT(NULL == pelem);
GPOS_DELETE_ARRAY(rgelem);
return GPOS_OK;
}