当前位置: 首页>>代码示例>>C++>>正文


C++ FreeList::discard方法代码示例

本文整理汇总了C++中FreeList::discard方法的典型用法代码示例。如果您正苦于以下问题:C++ FreeList::discard方法的具体用法?C++ FreeList::discard怎么用?C++ FreeList::discard使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在FreeList的用法示例。


在下文中一共展示了FreeList::discard方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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]];
 }
开发者ID:breakds,项目名称:PatTk,代码行数:28,代码来源:LazyBuffer.hpp

示例2: evacuate

 inline void evacuate()
 {
   assert( LAZY_BUFFER_INPUT == type );
   for ( auto& ele : backward_ptr ) {
     forward_ptr[ele] = -1;
     fl.discard();
   }
   backward_ptr.clear();
   items.clear();
 }
开发者ID:breakds,项目名称:PatTk,代码行数:10,代码来源:LazyBuffer.hpp


注:本文中的FreeList::discard方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。