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


C++ data_buffer::end方法代码示例

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


在下文中一共展示了data_buffer::end方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: erase_one

bool erase_one(data_buffer& buffer, index123_type& index123)
{
  size_t buffer_size = std::distance(buffer.begin(), buffer.end());
  data_pointer ptr = buffer.begin() + (buffer_size > 0 ? rand()%buffer_size : 0);
  offset_t offset = ptr.get_offset();
  
  auto lower = index123.lower_bound(offset);
  auto upper = index123.upper_bound(offset);
  if (std::distance(lower,upper)!=1 )
  {
    std::cout << ptr->data1 << "," << ptr->data2 << ", " << ptr->data3 << std::endl;
    std::cout << "std::distance(lower,upper): "  << std::distance(lower,upper) << std::endl;
    return false;
  }
  
  index123.erase( offset );
  buffer.deallocate(ptr, 1);
  size_t buffer_size2 = std::distance(buffer.begin(), buffer.end());
  if ( (buffer_size - buffer_size2) != 1)
  {
    std::cout  << "Buffer size check failed - " << (buffer_size-1) << "!=" << buffer_size2 << std::endl;
    return false;
  }
  
  return true;
}
开发者ID:dmitry-saprykin,项目名称:v-set,代码行数:26,代码来源:multiset_test_impl.cpp

示例2: check

bool check(data_buffer& buffer, index123_type& index123)
{
  size_t buffer_size = std::distance(buffer.begin(), buffer.end());
  size_t buffer2_size = buffer.count();
  size_t index_size = index123.size();
  size_t index2_size = std::distance(index123.begin(), index123.end());
  bool size_check_fail = (buffer_size != index_size || buffer2_size != index2_size || buffer2_size != index_size);
  if ( size_check_fail )
  {
    std::cout << std::endl << "buffer/index size check failed!" << std::endl;
    std::cout << "buffer_size " << buffer_size << std::endl;
    std::cout << "index_size " << index_size << std::endl;
    return false;
  }

  if ( index123.size() < 2 )
  {
    return true;
  }
  
  cmp123 cmp(buffer);
  index123_type::iterator itr1 = index123.begin();
  index123_type::iterator itr2 = itr1 + 1;
  for ( ;itr2!=index123.end(); ++itr1, ++itr2)
  {
    if ( cmp(*itr1, *itr2) )
    {
      continue;
    }
    if ( !cmp(*itr2, *itr1) )
    {
      continue;
    }

    std::cout << std::endl << "comparator failed!" << std::endl;
    return false;
  }

  return true;
}
开发者ID:dmitry-saprykin,项目名称:v-set,代码行数:40,代码来源:multiset_test_impl.cpp

示例3: left

 cmp123(const data_buffer& b)
   : left(b.end())
   , right(b.end())
 {}
开发者ID:dmitry-saprykin,项目名称:v-set,代码行数:4,代码来源:multiset_test_impl.cpp


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