亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? transform_iterator.h

?? Matrix_Template_Library.rar c++矩陣模塊庫函數(shù)
?? H
字號:
// -*- c++ -*-//// Copyright 1997, 1998, 1999 University of Notre Dame.// Authors: Andrew Lumsdaine, Jeremy G. Siek, Lie-Quan Lee//// This file is part of the Matrix Template Library//// You should have received a copy of the License Agreement for the// Matrix Template Library along with the software;  see the// file LICENSE.  If not, contact Office of Research, University of Notre// Dame, Notre Dame, IN  46556.//// Permission to modify the code and to distribute modified code is// granted, provided the text of this NOTICE is retained, a notice that// the code was modified is included with the above COPYRIGHT NOTICE and// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE// file is distributed with the modified code.//// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.// By way of example, but not limitation, Licensor MAKES NO// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS// OR OTHER RIGHTS.////===========================================================================#include "mtl/iterator_adaptor.h"#if 0/* KCC can't handle this version *///: Tranforming Iterator// This iterator adaptor applies some function during the dereference//!category: iterators, adaptors//!component: type//!tparam: Iterator - The underlying iterator type//!tparam: UnaryFunction - A function that takes one argument of value typetemplate <class Iterator, class UnaryFunction>class transform_iterator  : public iterator_adaptor< transform_iterator<Iterator,                                                   UnaryFunction>,                             Iterator >{  typedef iterator_adaptor< transform_iterator<Iterator,                                                   UnaryFunction>,                             Iterator > super;public:  /* for old broken compilers */  //: The value type  typedef typename UnaryFunction::result_type value_type;  //: The difference type  typedef typename super::difference_type difference_type;  //: The iterator category  typedef typename super::iterator_category iterator_category;  //: The pointer type  typedef typename super::pointer pointer;  //: The reference type  typedef value_type reference;  //: Normal Constructor  inline transform_iterator(Iterator i, UnaryFunction op)     : super(*this, i), f(op) { }  //: Copy Constructor  inline transform_iterator(const transform_iterator& x)    : super(*this, x.iter), f(x.f) { }  //: Assignment Operator  inline transform_iterator& operator=(const transform_iterator& x) {    f = x.f; me = this; super::operator=(x); return *this; }  //: Dereference Operator (applies the function here)    inline reference operator*() const { return f(*iter); }protected:  UnaryFunction f;};#elsetemplate <class RandomAccessIterator, class UnaryFunction>class transform_iterator {  typedef transform_iterator self;public:  //: The value type  typedef typename UnaryFunction::result_type value_type;#if !defined ( _MSVCPP_ )  //: The difference type    typedef typename std::iterator_traits<RandomAccessIterator>::difference_type    difference_type;  //: The pointer type  typedef typename std::iterator_traits<RandomAccessIterator>::pointer     pointer;          #else  typedef typename std::iterator_traits<RandomAccessIterator>::distance_type    difference_type;  typedef difference_type distance_type;  typedef value_type* pointer;#endif  //: The iterator category  typedef typename std::iterator_traits<RandomAccessIterator>::iterator_category                                iterator_category;  typedef difference_type      Distance;  typedef RandomAccessIterator iterator_type;  //: The reference type  typedef value_type reference;  typedef value_type const_reference;  //: The default constructor  //!wheredef: Trivial Iterator  inline transform_iterator() { }  //: Normal constructor  //!wheredef: transform_iterator  inline transform_iterator(const RandomAccessIterator& x, UnaryFunction op)    : current(x), f(op) { }  //: Copy constructor  //!wheredef: Trivial Iterator  inline transform_iterator(const self& x)    : current(x.current), f(x.f) { }  //: MTL index method  //!wheredef: Indexible Iterator  inline int index() const { return current.index(); }    //: Convert to base iterator  //!wheredef: transform_iterator  inline operator RandomAccessIterator() { return current; }  //: Access base iterator  //!wheredef: transform_iterator  inline RandomAccessIterator base() const { return current; }  //: Dereference (and scale)  //!wheredef: Trivial Iterator  inline value_type operator*() const { return f(*current); }  //: Preincrement  //!wheredef: Forward Iterator  inline self& operator++ () { ++current; return *this; }  //: Postincrement  //!wheredef: Forward Iterator  inline self operator++ (int) { self tmp = *this; ++current; return tmp; }  //: Preincrement  //!wheredef: Bidirectional Iterator  inline self& operator-- () { --current; return *this; }  //: Postincrement  //!wheredef: Bidirectional Iterator  inline self operator-- (int) { self tmp = *this; --current; return tmp; }  //: Iterator addition  //!wheredef: Random Access Iterator  inline self operator+ (Distance n) const {    self c = current;    c += n;    return self (c, f);  }  //: Advance a distance  //!wheredef: Random Access Iterator  inline self& operator+= (Distance n) { current += n; return *this; }  //: Subtract a distance  //!wheredef: Random Access Iterator  inline self operator- (Distance n) const {    return self (current - n, f);  }  inline difference_type operator- (const self& x) const {    return current - x.current;  }  //: Retreat a distance  //!wheredef: Random Access Iterator  inline self& operator-= (Distance n) { current -= n; return *this; }  //: Access at an offset  inline value_type operator[] (Distance n) const {    return f(*(current + n));  }  //: Equality  //!wheredef: Trivial Iterator  inline bool operator==(const self& x) const { return current == x.current; }  //: Inequality  //!wheredef: Trivial Iterator  inline bool operator!=(const self& x) const { return current != x.current; }  //: Less than  //!wheredef: Random Access Iterator  inline bool operator<(const self& x) const { return current < x.current; }  protected:  RandomAccessIterator current;  UnaryFunction f;};#endif//: Helper function for creating a transforming iterator//!category: iterators//!component: functiontemplate <class Iterator, class UnaryFunction> inlinetransform_iterator<Iterator,UnaryFunction>trans_iter(Iterator i, UnaryFunction op) {  return transform_iterator<Iterator,UnaryFunction>(i, op);}#if 0/* this probably doesn't work, the me pointer all goofed up */template <class Iterator, class T>class scale_iterator   : public transform_iterator<Iterator,                                  std::binder1st< std::multiplies<T> > >{  typedef transform_iterator<Iterator,                                std::binder1st< std::multiplies<T> > >      super;public:  inline scale_iterator(Iterator i, T a)     : super(i, bind1st(multiplies<T>(),a)) { }};#endiftemplate <class RandomAccessIterator>class constant_stride_generator {  typedef constant_stride_generator<RandomAccessIterator> self;  typedef typename std::iterator_traits<RandomAccessIterator>::difference_type     Distance;public:  inline constant_stride_generator(Distance s) : stride_(s) { }  inline constant_stride_generator(const self& x) : stride_(x.stride_) { }  inline void inc(RandomAccessIterator& i) { i += stride_; }  inline void dec(RandomAccessIterator& i) { i -= stride_; }  inline void advance(RandomAccessIterator& i, int n) { i += n * stride_; }  /* JGS this interfance to diff may need to be changed */  inline Distance diff(const RandomAccessIterator& x,		const RandomAccessIterator& y,		const self& /* y_stride_gen */) const {    return (x - y) / stride_;  }private:  Distance stride_;};/*  StrideGen is a stride generator!  The simple version just creates constant strides */template <class RandomAccessIterator, class StrideGen>class general_stride_iterator   : public iterator_adaptor< general_stride_iterator<RandomAccessIterator,                                                      StrideGen>,			     RandomAccessIterator >{  typedef general_stride_iterator<RandomAccessIterator, StrideGen> self;  typedef iterator_adaptor< self, RandomAccessIterator> super;public:  typedef typename super::Distance Distance;  inline general_stride_iterator(RandomAccessIterator i, StrideGen s)     : super(*this, i), stride_gen(s) { }  inline self& operator++() {    stride_gen.inc(iter);    return *this;   }  inline self& operator--() {     stride_gen.dec(iter);    return *this;   }  inline self& operator+=(Distance n) {     stride_gen.advance(iter, n);    return *this;   }  inline self& operator-=(Distance n) {    stride_gen.advance(iter, -n);    return *this;   }  inline Distance diff(const self& y) const {    return stride_gen.diff(iter, y.iter, y.stride_gen);  }  inline friend Distance operator-(const self& x, const self& y) {    return x.diff(y);  }protected:  StrideGen stride_gen;};template <class RandomAccessIterator>class stride_iterator   : public general_stride_iterator<RandomAccessIterator,                        constant_stride_generator<RandomAccessIterator> >{  typedef general_stride_iterator<RandomAccessIterator,                     constant_stride_generator<RandomAccessIterator> > super;public:  typedef typename super::difference_type difference_type;  inline stride_iterator(RandomAccessIterator i, difference_type s)    : super(i, constant_stride_generator<RandomAccessIterator>(s)) { }};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷精品久久二区二区蜜臂av| 91麻豆免费在线观看| 成人免费福利片| 欧美日韩精品免费| 国产精品久久久久影院亚瑟| 免费成人美女在线观看.| 99精品黄色片免费大全| 国产亚洲一区二区三区四区| 亚洲国产精品麻豆| 91视频国产观看| 国产欧美日韩激情| 热久久久久久久| 欧美性感一类影片在线播放| 国产日韩高清在线| 国产麻豆精品一区二区| 91精品国产综合久久蜜臀 | 国产aⅴ综合色| 7777女厕盗摄久久久| 一区二区成人在线| 成人激情av网| 国产亚洲欧美色| 久久99精品久久久久婷婷| 6080午夜不卡| 午夜不卡在线视频| 欧美日韩国产综合视频在线观看| 亚洲色图视频网| 成人一区二区在线观看| 国产性天天综合网| 福利电影一区二区三区| 国产欧美一区二区精品性色超碰| 国产一区视频在线看| 欧美变态凌虐bdsm| 久久99国产精品成人| 日韩精品在线一区二区| 精品一区免费av| 久久精品免视看| 粉嫩aⅴ一区二区三区四区五区| 精品1区2区在线观看| 精品中文字幕一区二区| 久久这里只有精品6| 国精品**一区二区三区在线蜜桃| 精品国产免费久久| 国产福利一区在线| 欧美—级在线免费片| 99精品久久久久久| 亚洲成a人v欧美综合天堂下载| 欧美日韩另类一区| 日本中文字幕一区二区视频 | 精品亚洲成a人在线观看 | 欧美日韩亚洲综合一区| 亚洲成人综合视频| 精品少妇一区二区三区在线视频| 国产精品一区三区| 中文字幕亚洲区| 欧美日韩一级视频| 免费一区二区视频| 国产日产欧产精品推荐色 | 亚洲成a天堂v人片| 精品日韩欧美在线| 成人h动漫精品| 午夜欧美在线一二页| 精品国产a毛片| 91视频免费看| 麻豆久久一区二区| 18成人在线观看| 91精品免费观看| 99在线精品免费| 日本vs亚洲vs韩国一区三区二区| 久久久高清一区二区三区| 色综合久久综合网欧美综合网 | 亚洲精品成人少妇| 欧美一区二区三区电影| 成人av资源在线观看| 午夜电影久久久| 国产精品天天摸av网| 69堂国产成人免费视频| 成人一区二区三区中文字幕| 日本视频一区二区三区| 国产欧美精品一区aⅴ影院| 欧美日韩不卡在线| 成人h动漫精品一区二区| 免费av成人在线| 一片黄亚洲嫩模| 中文字幕国产一区二区| 91精品国产高清一区二区三区 | 亚洲人快播电影网| 精品不卡在线视频| 欧美日韩国产高清一区二区三区| 成人精品在线视频观看| 久久国产福利国产秒拍| 玉足女爽爽91| 中文字幕在线视频一区| 欧美成人aa大片| 欧美高清一级片在线| 92精品国产成人观看免费| 久草热8精品视频在线观看| 亚洲一区二区在线免费看| 国产精品久久久久一区二区三区共| 日韩一区二区三区高清免费看看| 色94色欧美sute亚洲线路一久 | 国产精品一品二品| 日本麻豆一区二区三区视频| 一区二区三区.www| 亚洲免费在线播放| 久久久一区二区三区| 精品日韩一区二区三区免费视频| 欧美人妇做爰xxxⅹ性高电影| 色综合久久久网| 97久久精品人人做人人爽| 国产精品一区二区久激情瑜伽| 免费久久99精品国产| 天天色图综合网| 亚洲成a人在线观看| 亚洲国产成人精品视频| 亚洲一区在线播放| 亚洲国产美国国产综合一区二区| 亚洲女同ⅹxx女同tv| 亚洲伦理在线精品| 亚洲精品视频自拍| 亚洲综合在线第一页| 亚洲成人免费av| 免费高清视频精品| 蜜乳av一区二区三区| 精品一区二区三区蜜桃| 国产在线播放一区二区三区| 国产毛片一区二区| 成人黄色网址在线观看| av在线一区二区| 欧美亚洲综合久久| 欧美日韩高清一区二区三区| 欧美精品一卡二卡| 精品电影一区二区| 国产精品色在线| 亚洲精品大片www| 免费看日韩a级影片| 国产在线不卡一卡二卡三卡四卡| 成人小视频免费在线观看| 色综合一个色综合| 欧美一级生活片| 久久麻豆一区二区| 怡红院av一区二区三区| 日韩电影在线看| 国产99久久久久久免费看农村| 91色porny| 欧美一区二区精品在线| 国产色产综合产在线视频| 综合在线观看色| 日韩1区2区日韩1区2区| 成人性生交大片免费看中文网站| 在线观看视频一区二区欧美日韩| 欧美另类videos死尸| 欧美不卡视频一区| 一卡二卡欧美日韩| 国产一区二区91| 在线这里只有精品| 精品日韩欧美在线| 亚洲一线二线三线视频| 国产一区二区不卡在线| 欧美老肥妇做.爰bbww视频| 国产精品女同互慰在线看| 免费在线看一区| 色综合久久久网| 中文字幕的久久| 久久av资源网| 69堂精品视频| 亚洲一区欧美一区| 99久久婷婷国产综合精品| 精品国产不卡一区二区三区| 亚洲国产综合色| 色欧美乱欧美15图片| 欧美激情一区二区三区| 激情综合色播激情啊| 欧美在线色视频| 亚洲天堂网中文字| 国产成人一区在线| 久久亚洲二区三区| 蜜桃一区二区三区四区| 欧美性色黄大片| 亚洲精品免费视频| 日本不卡视频在线观看| 青青草原综合久久大伊人精品优势 | av爱爱亚洲一区| 欧美一区二区三区免费视频| 亚洲视频免费在线| zzijzzij亚洲日本少妇熟睡| 日韩欧美电影一区| 亚洲自拍偷拍九九九| 91精彩视频在线观看| 久久先锋影音av| 日本在线不卡一区| 色综合久久久久综合99| 国产日韩欧美精品一区| 免费精品99久久国产综合精品| 国产成人在线视频网址| 欧美videossexotv100| 亚洲h在线观看| 色婷婷亚洲综合| 亚洲精品一线二线三线无人区| 久久电影网站中文字幕| 欧美一级欧美三级在线观看|