⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 join_random_access_iterator.h

📁 CGAL is a collaborative effort of several sites in Europe and Israel. The goal is to make the most i
💻 H
字号:
// Copyright (c) 1997-2001  ETH Zurich (Switzerland).// All rights reserved.//// This file is part of CGAL (www.cgal.org); you may redistribute it under// the terms of the Q Public License version 1.0.// See the file LICENSE.QPL distributed with CGAL.//// Licensees holding a valid commercial license may use this file in// accordance with the commercial license agreement provided with the software.//// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.//// $Source: /CVSROOT/CGAL/Packages/_QP_solver/include/CGAL/_QP_solver/Join_random_access_iterator.h,v $// $Revision: 1.5 $ $Date: 2004/09/03 17:41:11 $// $Name:  $//// Author(s)     : Sven Schoenherr <sven@inf.ethz.ch>#ifndef CGAL_JOIN_RANDOM_ACCESS_ITERATOR_H#define CGAL_JOIN_RANDOM_ACCESS_ITERATOR_H#include <CGAL/basic.h>#include <iterator>CGAL_BEGIN_NAMESPACEtemplate < class RndAccIt, class Operation >class Join_random_access_iterator_1 {  public:    typedef  typename Operation::result_type  value_type;    typedef  ptrdiff_t                        difference_type;    typedef  value_type*                      pointer;    typedef  value_type&                      reference;    typedef  std::random_access_iterator_tag  iterator_category;    typedef  Join_random_access_iterator_1<RndAccIt,Operation>  Self;    typedef  value_type                                         Val;    typedef  difference_type                                    Dist;    typedef  reference                                          Ref;    // forward operations    Join_random_access_iterator_1( ) { }    Join_random_access_iterator_1( const RndAccIt& it_1) : it1( it_1) { }    Join_random_access_iterator_1( const RndAccIt&  it_1,				   const Operation& operation)	: it1( it_1), op( operation) { }    bool   operator == ( const Self& it) const { return ( it1 == it.it1); }    bool   operator != ( const Self& it) const { return ( it1 != it.it1); }    Val    operator *  ( ) const { return op( *it1); }    Self&  operator ++ (    ) {                   ++it1; return *this; }    Self   operator ++ ( int) { Self tmp = *this; ++it1; return tmp;   }    // bidirectional operations    Self&  operator -- (    ) {                   --it1; return *this; }    Self   operator -- ( int) { Self tmp = *this; --it1; return tmp;   }    // random access operations    Self&  operator += ( Dist n) { it1 += n; return *this; }    Self&  operator -= ( Dist n) { it1 -= n; return *this; }    Self   operator +  ( Dist n) const { Self tmp = *this; return tmp += n; }    Self   operator -  ( Dist n) const { Self tmp = *this; return tmp -= n; }    Dist   operator -  ( const Self& it) const { return it1 - it.it1; }    Val    operator [] ( int i) const { return op( it1[ i]); }    bool   operator <  ( const Self& it) const { return ( it1 <  it.it1); }    bool   operator >  ( const Self& it) const { return ( it1 >  it.it1); }    bool   operator <= ( const Self& it) const { return ( it1 <= it.it1); }    bool   operator >= ( const Self& it) const { return ( it1 >= it.it1); }  private:    RndAccIt   it1;    Operation  op;};CGAL_END_NAMESPACE  #endif// ===== EOF ==================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -