base_cursor.hpp

来自「矩阵运算源码最新版本」· HPP 代码 · 共 98 行

HPP
98
字号
// Software License for MTL// // Copyright (c) 2007 The Trustees of Indiana University. All rights reserved.// Authors: Peter Gottschling and Andrew Lumsdaine// // This file is part of the Matrix Template Library// // See also license.mtl.txt in the distribution.#ifndef MTL_BASE_CURSOR_INCLUDE#define MTL_BASE_CURSOR_INCLUDEnamespace mtl { namespace detail {// base class for different cursors, works with pointers and integerstemplate <class Key> class base_cursor { public:    typedef Key          key_type;    typedef base_cursor  self;    base_cursor () {}     base_cursor (key_type key) : key(key) {}    key_type operator*() const     {       return key;     }    self& operator++ ()     {       ++key; return *this;     }    self operator++ (int)     {       self tmp = *this;       ++key;       return tmp;     }    self& operator-- ()     {       --key;       return *this;     }    self operator-- (int)     {       self tmp = *this;       --key;       return tmp;     }    self& operator+=(int n)     {       key += n;       return *this;     }      self operator+(int n) const    {	self tmp = *this;	tmp+= n;	return tmp;    }        self& operator-=(int n)     {       key -= n;       return *this;     }    int operator-(const self& cc) const     {	return this->key - cc.key;    }    bool operator==(const self& cc) const     {      return key == cc.key;     }    bool operator!=(const self& cc) const     {      return !(*this == cc);     }        key_type key;}; // base_cursor}} // namespace mtl::detail #endif // MTL_BASE_CURSOR_INCLUDE 

⌨️ 快捷键说明

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