本文整理汇总了C++中FreeList::promote方法的典型用法代码示例。如果您正苦于以下问题:C++ FreeList::promote方法的具体用法?C++ FreeList::promote怎么用?C++ FreeList::promote使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FreeList
的用法示例。
在下文中一共展示了FreeList::promote方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: operator
// Const access and load on demand
inline const ItemType& operator()( const int i )
{
assert( i < static_cast<int>( forward_ptr.size() ) );
if ( -1 == forward_ptr[i] ) {
assert( LAZY_BUFFER_INPUT == type );
if ( -1 != limit && static_cast<int>( backward_ptr.size() ) >= limit ) {
int pos = fl.discard();
int unload = forward_ptr[pos];
forward_ptr[pos] = -1;
assert( -1 != unload );
fseek( fdata, offsets[i], SEEK_SET );
items[unload] = std::move( ItemType( fdata ) );
forward_ptr[i] = unload;
backward_ptr[unload] = i;
} else {
fseek( fdata, offsets[i], SEEK_SET );
items.push_back( std::move( ItemType( fdata ) ) );
forward_ptr[i] = static_cast<int>( items.size() - 1 );
backward_ptr.push_back( i );
assert( backward_ptr.size() == items.size() );
}
fl.promote( i );
} else {
assert( ( 0 <= forward_ptr[i] ) && ( forward_ptr[i] < static_cast<int>( items.size() ) ) );
}
return items[forward_ptr[i]];
}