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

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

?? valarray

?? STL 最新源代碼
??
?? 第 1 頁 / 共 4 頁
字號:
/* * Copyright (c) 1999 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation.  Silicon Graphics makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. */ #ifndef __SGI_STL_VALARRAY#define __SGI_STL_VALARRAY#include <type_traits.h>#include <math.h>#include <algorithm>#include <numeric>#include <limits>#include <new>__STL_BEGIN_NAMESPACEclass slice;class gslice;template <class _Tp> class valarray;template <class _Tp> class slice_array;template <class _Tp> class gslice_array;template <class _Tp> class mask_array;template <class _Tp> class indirect_array;//----------------------------------------------------------------------// class valarray// Base class to handle memory allocation and deallocation.  We can't just// use vector<>, because vector<bool> would be unsuitable as an internal // representation for valarray<bool>.template <class _Tp> struct _Valarray_base{  _Tp*   _M_first;  size_t _M_size;  _Valarray_base() : _M_first(0), _M_size(0) {}  _Valarray_base(size_t __n) : _M_first(0), _M_size(0) { _M_allocate(__n); }  ~_Valarray_base() { _M_deallocate(); }  void _M_allocate(size_t __n) {    if (__n != 0) {      _M_first = static_cast<_Tp*>(malloc(__n * sizeof(_Tp)));      _M_size  = __n;#   if !defined(__STL_NO_BAD_ALLOC) && defined(__STL_USE_EXCEPTIONS)      if (_M_first == 0) {        _M_size = 0;        throw std::bad_alloc();      }#   endif    }    else {      _M_first = 0;      _M_size = 0;    }  }  void _M_deallocate() {    free(_M_first);    _M_first = 0;    _M_size = 0;  }};template <class _Tp> class valarray : private _Valarray_base<_Tp>{  friend class gslice;public:  typedef _Tp value_type;  // Basic constructors  valarray() : _Valarray_base<_Tp>() {}  valarray(size_t __n) : _Valarray_base<_Tp>(__n)    { uninitialized_fill_n(this->_M_first, this->_M_size, value_type()); }  valarray(const value_type& __x, size_t __n) : _Valarray_base<_Tp>(__n)    { uninitialized_fill_n(this->_M_first, this->_M_size, __x); }  valarray(const value_type* __p, size_t __n) : _Valarray_base<_Tp>(__n)    { uninitialized_copy(__p, __p + __n, this->_M_first); }   valarray(const valarray& __x) : _Valarray_base<_Tp>(__x._M_size) {    uninitialized_copy(__x._M_first, __x._M_first + __x._M_size,                       this->_M_first);  }  // Constructors from auxiliary array types  valarray(const slice_array<_Tp>&);  valarray(const gslice_array<_Tp>&);  valarray(const mask_array<_Tp>&);  valarray(const indirect_array<_Tp>&);  // Destructor  ~valarray() { destroy(this->_M_first, this->_M_first + this->_M_size); }  // Extension: constructor that doesn't initialize valarray elements to a  // specific value.  This is faster for types such as int and double.private:  void _M_initialize(__true_type) {}  void _M_initialize(__false_type)    { uninitialized_fill_n(this->_M_first, this->_M_size, value_type()); }public:  struct _NoInit {};  valarray(size_t __n, _NoInit) : _Valarray_base<_Tp>(__n) {    typedef typename __type_traits<_Tp>::has_trivial_default_constructor            _Is_Trivial;    _M_initialize(_Is_Trivial());  }public:                         // Assignment  // Basic assignment.  Note that 'x = y' is undefined if x.size() != y.size()  valarray& operator=(const valarray& __x) {    if (this != &__x)      copy(__x._M_first, __x._M_first + __x._M_size, this->_M_first);    return *this;  }  // Scalar assignment  valarray& operator=(const value_type& __x) {    fill_n(this->_M_first, this->_M_size, __x);    return *this;  }  // Assignment of auxiliary array types  valarray& operator=(const slice_array<_Tp>&);  valarray& operator=(const gslice_array<_Tp>&);  valarray& operator=(const mask_array<_Tp>&);  valarray& operator=(const indirect_array<_Tp>&);public:                         // Element access  value_type  operator[](size_t __n) const { return this->_M_first[__n]; }  value_type& operator[](size_t __n)       { return this->_M_first[__n]; }  size_t size() const { return this->_M_size; }public:                         // Subsetting operations with auxiliary type  valarray            operator[](slice) const;  slice_array<_Tp>    operator[](slice);  valarray            operator[](gslice) const;  gslice_array<_Tp>   operator[](gslice);    valarray            operator[](const valarray<bool>&) const;  mask_array<_Tp>     operator[](const valarray<bool>&);  valarray            operator[](const valarray<size_t>&) const;  indirect_array<_Tp> operator[](const valarray<size_t>&);  public:                         // Unary operators.  valarray operator+() const { return *this; }  valarray operator-() const {    valarray __tmp(this->size(), _NoInit());    for (size_t __i = 0; __i < this->size(); ++__i)      __tmp[__i] = -(*this)[__i];    return __tmp;  }    valarray operator~() const {    valarray __tmp(this->size(), _NoInit());    for (size_t __i = 0; __i < this->size(); ++__i)      __tmp[__i] = ~(*this)[__i];    return __tmp;  }  valarray<bool> operator!() const {    valarray<bool> __tmp(this->size(), valarray<bool>::_NoInit());    for (size_t __i = 0; __i < this->size(); ++__i)      __tmp[__i] = !(*this)[__i];    return __tmp;  }public:                         // Scalar computed assignment.  valarray& operator*= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] *= __x;    return *this;  }      valarray& operator/= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] /= __x;    return *this;  }  valarray& operator%= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] %= __x;    return *this;  }  valarray& operator+= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] += __x;    return *this;  }  valarray& operator-= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] -= __x;    return *this;  }  valarray& operator^= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] ^= __x;    return *this;  }  valarray& operator&= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] &= __x;    return *this;  }  valarray& operator|= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] |= __x;    return *this;  }  valarray& operator<<= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] <<= __x;    return *this;  }  valarray& operator>>= (const value_type& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] >>= __x;    return *this;  }public:                         // Array computed assignment.  valarray& operator*= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] *= __x[__i];    return *this;  }      valarray& operator/= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] /= __x[__i];    return *this;  }  valarray& operator%= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] %= __x[__i];    return *this;  }  valarray& operator+= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] += __x[__i];    return *this;  }  valarray& operator-= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] -= __x[__i];    return *this;  }  valarray& operator^= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] ^= __x[__i];    return *this;  }  valarray& operator&= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] &= __x[__i];    return *this;  }  valarray& operator|= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] |= __x[__i];    return *this;  }  valarray& operator<<= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] <<= __x[__i];    return *this;  }  valarray& operator>>= (const valarray& __x) {    for (size_t __i = 0; __i < this->size(); ++__i)      (*this)[__i] >>= __x[__i];    return *this;  }public:                         // Other member functions.  // The result is undefined for zero-length arrays  value_type sum() const {    return accumulate(this->_M_first + 1, this->_M_first + this->_M_size,                      (*this)[0]);  }  // The result is undefined for zero-length arrays  value_type min() const {    return *min_element(this->_M_first + 0, this->_M_first + this->_M_size);  }  value_type max() const {    return *max_element(this->_M_first + 0, this->_M_first + this->_M_size);  }  valarray shift(int __n) const;  valarray cshift(int __n) const;  valarray apply(value_type __f(value_type)) const {    valarray __tmp(this->size());    transform(this->_M_first, this->_M_first + this->_M_size, __tmp._M_first,              __f);    return __tmp;  }  valarray apply(value_type __f(const value_type&)) const {    valarray __tmp(this->size());    transform(this->_M_first, this->_M_first + this->_M_size, __tmp._M_first,              __f);    return __tmp;  }    void resize(size_t __n, value_type __x = value_type()) {    destroy(this->_M_first, this->_M_first + this->_M_size);    this->_Valarray_base<_Tp>::_M_deallocate();    this->_Valarray_base<_Tp>::_M_allocate(__n);    uninitialized_fill_n(this->_M_first, this->_M_size, __x);  }};//----------------------------------------------------------------------// valarray non-member functions.// Binary arithmetic operations between two arrays.  Behavior is// undefined if the two arrays do not have the same length.template <class _Tp> inline valarray<_Tp> operator*(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] * __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator/(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] / __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator%(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] % __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator+(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] + __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator-(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] - __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator^(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] ^ __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator&(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] & __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator|(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] | __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator<<(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());  for (size_t __i = 0; __i < __x.size(); ++__i)    __tmp[__i] = __x[__i] << __y[__i];  return __tmp;}template <class _Tp> inline valarray<_Tp> operator>>(const valarray<_Tp>& __x,                               const valarray<_Tp>& __y) {  typedef typename valarray<_Tp>::_NoInit _NoInit;  valarray<_Tp> __tmp(__x.size(), _NoInit());

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲成aⅴ人片在线观看| 亚洲www啪成人一区二区麻豆| 亚洲一区二区视频在线观看| 久88久久88久久久| 日本精品视频一区二区| 久久亚洲综合av| 丝袜脚交一区二区| 色婷婷亚洲婷婷| 国产精品久久久久影视| 久久国产精品第一页| 欧美性色综合网| 中文字幕一区二区视频| 国产精品一区2区| 91精品国产综合久久久蜜臀粉嫩| 亚洲欧洲综合另类| 国产99久久久久久免费看农村| 日韩一级二级三级精品视频| 亚洲mv在线观看| 色88888久久久久久影院按摩| 亚洲欧洲色图综合| 国产v综合v亚洲欧| 国产日韩三级在线| 国产激情一区二区三区| 欧美成人精品二区三区99精品| 视频在线在亚洲| 717成人午夜免费福利电影| 亚洲午夜私人影院| 欧美色网一区二区| 亚洲高清久久久| 欧美精品 国产精品| 污片在线观看一区二区| 欧美日韩黄色一区二区| 亚洲成年人网站在线观看| 欧美日韩免费在线视频| 亚洲国产裸拍裸体视频在线观看乱了| 欧洲一区在线观看| 亚洲一区二区3| 91精品国产综合久久福利 | 日日夜夜一区二区| 欧美精品久久99久久在免费线 | aaa亚洲精品| 综合婷婷亚洲小说| 欧美中文一区二区三区| 性欧美疯狂xxxxbbbb| 91麻豆精品国产无毒不卡在线观看| 午夜精品123| 精品国产电影一区二区| 国产成人鲁色资源国产91色综| 国产精品久久久久一区二区三区 | 国产综合成人久久大片91| 久久亚洲一区二区三区明星换脸| 国产91精品一区二区| 亚洲精品国产品国语在线app| 欧美日韩国产片| 国产一区二区不卡老阿姨| 国产精品另类一区| 欧美亚洲愉拍一区二区| 九色|91porny| 亚洲色图制服丝袜| 欧美日韩一级片网站| 国内欧美视频一区二区| 中文字幕永久在线不卡| 欧美精选一区二区| 国产福利一区二区三区视频 | 91精品91久久久中77777| 天天色天天操综合| 国产欧美日产一区| 欧洲国内综合视频| 激情六月婷婷综合| 亚洲欧美欧美一区二区三区| 日韩欧美一区在线| 色噜噜偷拍精品综合在线| 免费观看在线综合| 亚洲视频电影在线| 2欧美一区二区三区在线观看视频| 97久久精品人人澡人人爽| 日韩精品欧美精品| 亚洲美女精品一区| 日韩精品一区国产麻豆| 色欧美88888久久久久久影院| 韩国成人在线视频| 视频一区二区国产| 综合av第一页| 国产无遮挡一区二区三区毛片日本| 日本韩国精品在线| 国产91精品露脸国语对白| 亚洲6080在线| 樱花草国产18久久久久| 久久久久国产精品麻豆ai换脸 | 奇米精品一区二区三区在线观看 | 中文字幕国产一区| 日韩亚洲电影在线| 欧美日韩久久久一区| 粉嫩绯色av一区二区在线观看| 日韩专区中文字幕一区二区| 成人欧美一区二区三区黑人麻豆| 日韩你懂的电影在线观看| 一本久久a久久免费精品不卡| 国产高清成人在线| 久久精品国产精品青草| 丝袜诱惑亚洲看片| 午夜a成v人精品| 亚洲日本在线看| 中文字幕在线一区免费| 国产三级精品三级| 国产午夜精品福利| 国产婷婷色一区二区三区| 精品区一区二区| 久久夜色精品国产欧美乱极品| 日韩三级视频在线观看| 日韩视频在线永久播放| 91麻豆精品91久久久久同性| 欧美日韩高清在线播放| 欧美日韩一区二区三区高清| 欧美日韩情趣电影| 国产一区福利在线| 久久精品国产精品亚洲红杏| 久久精品国产99| 激情小说欧美图片| 国产成人免费在线视频| 国产激情一区二区三区四区| 国产69精品久久久久777| 国产二区国产一区在线观看| 国产精品一二三区在线| 国产jizzjizz一区二区| av亚洲精华国产精华精华| 91女厕偷拍女厕偷拍高清| 色天使久久综合网天天| 欧美色图天堂网| 欧美精品一卡两卡| 日韩欧美国产小视频| 久久精品男人天堂av| 中文字幕一区在线| 五月婷婷激情综合| 久久99国产精品麻豆| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 美女在线视频一区| 国产美女精品在线| 99re这里只有精品首页| 欧美性受极品xxxx喷水| 日韩三级免费观看| 一区免费观看视频| 亚洲超碰精品一区二区| 久久99精品国产.久久久久久| 国产成人免费视频精品含羞草妖精| 9i看片成人免费高清| 欧美日韩成人在线一区| 久久久精品黄色| 一区二区三区不卡视频在线观看| 麻豆视频一区二区| 99精品久久久久久| 日韩午夜在线影院| 成人欧美一区二区三区1314| 丝袜美腿亚洲一区| 99re这里都是精品| 日韩欧美美女一区二区三区| 国产精品全国免费观看高清| 亚洲国产精品自拍| 成人一区二区在线观看| 91精品国产免费久久综合| 中文字幕一区二区三区蜜月| 日韩国产一二三区| av电影在线不卡| 久久久久久久网| 人人精品人人爱| 欧美午夜一区二区| 中文乱码免费一区二区| 日韩专区在线视频| 色婷婷亚洲精品| 国产精品久久久久久久蜜臀| 蜜桃精品视频在线| 欧美性猛交xxxxxx富婆| 中国色在线观看另类| 蜜臀av性久久久久蜜臀aⅴ四虎| 色婷婷综合激情| 中文字幕视频一区| 极品尤物av久久免费看| 欧美精品在线观看播放| 一区二区三区在线观看动漫| 成人午夜私人影院| 久久婷婷国产综合国色天香| 日本强好片久久久久久aaa| 欧美视频一区在线| 亚洲欧美一区二区三区孕妇| 成人网页在线观看| 久久精品一区二区| 国产在线精品一区二区夜色| 91精品国产一区二区三区香蕉| 亚洲宅男天堂在线观看无病毒| 成人av电影在线| 国产精品久久久爽爽爽麻豆色哟哟| 国产一区二区网址| www国产精品av| 麻豆国产精品777777在线| 宅男噜噜噜66一区二区66| 亚洲国产wwwccc36天堂| 欧美三级视频在线观看| 亚洲午夜一区二区| 欧美日韩国产综合视频在线观看 | 欧美日韩精品一区二区|