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

📄 int_iterator.hpp

📁 CGAL is a collaborative effort of several sites in Europe and Israel. The goal is to make the most i
💻 HPP
字号:
//  (C) Copyright Jeremy Siek 1999.//  Distributed under the Boost Software License, Version 1.0. (See//  accompanying file LICENSE_1_0.txt or copy at//  http://www.boost.org/LICENSE_1_0.txt)#ifndef BOOST_INT_ITERATOR_H#define BOOST_INT_ITERATOR_H#include <boost/iterator.hpp>#if !defined BOOST_MSVC#include <boost/operators.hpp>#endif#include <iostream>//using namespace std;#ifndef BOOST_NO_OPERATORS_IN_NAMESPACEnamespace boost {#endif// this should use random_access_iterator_helper but I've had// VC++ portablility problems with that. -JGStemplate <class IntT>class int_iterator{  typedef int_iterator self;public:  typedef std::random_access_iterator_tag iterator_category;  typedef IntT value_type;  typedef IntT& reference;  typedef IntT* pointer;  typedef std::ptrdiff_t difference_type;  inline int_iterator() : _i(0) { }  inline int_iterator(IntT i) : _i(i) { }  inline int_iterator(const self& x) : _i(x._i) { }  inline self& operator=(const self& x) { _i = x._i; return *this; }  inline IntT operator*() { return _i; }  inline IntT operator[](IntT n) { return _i + n; }  inline self& operator++() { ++_i; return *this; }  inline self operator++(int) { self t = *this; ++_i; return t; }  inline self& operator+=(IntT n) { _i += n; return *this; }  inline self operator+(IntT n) { self t = *this; t += n; return t; }  inline self& operator--() { --_i; return *this; }  inline self operator--(int) { self t = *this; --_i; return t; }  inline self& operator-=(IntT n) { _i -= n; return *this; }  inline IntT operator-(const self& x) const { return _i - x._i; }  inline bool operator==(const self& x) const { return _i == x._i; }  // vc++ had a problem finding != in random_access_iterator_helper  // need to look into this... for now implementing everything here -JGS  inline bool operator!=(const self& x) const { return _i != x._i; }  inline bool operator<(const self& x) const { return _i < x._i; }  inline bool operator<=(const self& x) const { return _i <= x._i; }  inline bool operator>(const self& x) const { return _i > x._i; }  inline bool operator>=(const self& x) const { return _i >= x._i; }protected:  IntT _i;};template <class IntT>inline int_iterator<IntT>operator+(IntT n, int_iterator<IntT> t) { t += n; return t; }#ifndef BOOST_NO_OPERATORS_IN_NAMESPACE} /* namespace boost */#endif#ifdef BOOST_NO_OPERATORS_IN_NAMESPACEnamespace boost {  using ::int_iterator;}#endif#endif /* BOOST_INT_ITERATOR_H */

⌨️ 快捷键说明

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