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

📄 valarray

📁 mingw32.rar
💻
📖 第 1 页 / 共 3 页
字号:
      typename _UnaryOp<__bitwise_not>::_Rt operator~() const;      ///  Return a new valarray by applying unary ! to each element.      typename _UnaryOp<__logical_not>::_Rt operator!() const;      // _lib.valarray.cassign_ computed assignment:      ///  Multiply each element of array by @a t.      valarray<_Tp>& operator*=(const _Tp&);      ///  Divide each element of array by @a t.      valarray<_Tp>& operator/=(const _Tp&);      ///  Set each element e of array to e % @a t.      valarray<_Tp>& operator%=(const _Tp&);      ///  Add @a t to each element of array.      valarray<_Tp>& operator+=(const _Tp&);      ///  Subtract @a t to each element of array.      valarray<_Tp>& operator-=(const _Tp&);      ///  Set each element e of array to e ^ @a t.      valarray<_Tp>& operator^=(const _Tp&);      ///  Set each element e of array to e & @a t.      valarray<_Tp>& operator&=(const _Tp&);      ///  Set each element e of array to e | @a t.      valarray<_Tp>& operator|=(const _Tp&);      ///  Left shift each element e of array by @a t bits.      valarray<_Tp>& operator<<=(const _Tp&);      ///  Right shift each element e of array by @a t bits.      valarray<_Tp>& operator>>=(const _Tp&);      ///  Multiply elements of array by corresponding elements of @a v.      valarray<_Tp>& operator*=(const valarray<_Tp>&);      ///  Divide elements of array by corresponding elements of @a v.      valarray<_Tp>& operator/=(const valarray<_Tp>&);      ///  Modulo elements of array by corresponding elements of @a v.      valarray<_Tp>& operator%=(const valarray<_Tp>&);      ///  Add corresponding elements of @a v to elements of array.      valarray<_Tp>& operator+=(const valarray<_Tp>&);      ///  Subtract corresponding elements of @a v from elements of array.      valarray<_Tp>& operator-=(const valarray<_Tp>&);      ///  Logical xor corresponding elements of @a v with elements of array.      valarray<_Tp>& operator^=(const valarray<_Tp>&);      ///  Logical or corresponding elements of @a v with elements of array.      valarray<_Tp>& operator|=(const valarray<_Tp>&);      ///  Logical and corresponding elements of @a v with elements of array.      valarray<_Tp>& operator&=(const valarray<_Tp>&);      ///  Left shift elements of array by corresponding elements of @a v.      valarray<_Tp>& operator<<=(const valarray<_Tp>&);      ///  Right shift elements of array by corresponding elements of @a v.      valarray<_Tp>& operator>>=(const valarray<_Tp>&);      template<class _Dom>	valarray<_Tp>& operator*=(const _Expr<_Dom,_Tp>&);      template<class _Dom>	valarray<_Tp>& operator/=(const _Expr<_Dom,_Tp>&);      template<class _Dom>	valarray<_Tp>& operator%=(const _Expr<_Dom,_Tp>&);      template<class _Dom>	valarray<_Tp>& operator+=(const _Expr<_Dom,_Tp>&);      template<class _Dom>	valarray<_Tp>& operator-=(const _Expr<_Dom,_Tp>&);      template<class _Dom>	valarray<_Tp>& operator^=(const _Expr<_Dom,_Tp>&);      template<class _Dom>	valarray<_Tp>& operator|=(const _Expr<_Dom,_Tp>&);      template<class _Dom>	valarray<_Tp>& operator&=(const _Expr<_Dom,_Tp>&);      template<class _Dom>      valarray<_Tp>& operator<<=(const _Expr<_Dom,_Tp>&);      template<class _Dom>	valarray<_Tp>& operator>>=(const _Expr<_Dom,_Tp>&);      // _lib.valarray.members_ member functions:      ///  Return the number of elements in array.      size_t size() const;      /**       *  @brief  Return the sum of all elements in the array.       *       *  Accumulates the sum of all elements into a Tp using +=.  The order       *  of adding the elements is unspecified.       */      _Tp    sum() const;      ///  Return the minimum element using operator<().      _Tp    min() const;	      ///  Return the maximum element using operator<().      _Tp    max() const;	  //           // FIXME: Extension  //       _Tp    product () const;      /**       *  @brief  Return a shifted array.       *       *  A new valarray is constructed as a copy of this array with elements       *  in shifted positions.  For an element with index i, the new position       *  is i - n.  The new valarray is the same size as the current one.       *  New elements without a value are set to 0.  Elements whos new       *  position is outside the bounds of the array are discarded.       *       *  Positive arguments shift toward index 0, discarding elements [0, n).       *  Negative arguments discard elements from the top of the array.       *       *  @param  n  Number of element positions to shift.       *  @return  New valarray with elements in shifted positions.       */      valarray<_Tp> shift (int) const;      /**       *  @brief  Return a rotated array.       *       *  A new valarray is constructed as a copy of this array with elements       *  in shifted positions.  For an element with index i, the new position       *  is (i - n) % size().  The new valarray is the same size as the       *  current one.  Elements that are shifted beyond the array bounds are       *  shifted into the other end of the array.  No elements are lost.       *       *  Positive arguments shift toward index 0, wrapping around the top.       *  Negative arguments shift towards the top, wrapping around to 0.       *       *  @param  n  Number of element positions to rotate.       *  @return  New valarray with elements in shifted positions.       */      valarray<_Tp> cshift(int) const;      /**       *  @brief  Apply a function to the array.       *       *  Returns a new valarray with elements assigned to the result of       *  applying func to the corresponding element of this array.  The new       *  array is the same size as this one.       *       *  @param  func  Function of Tp returning Tp to apply.       *  @return  New valarray with transformed elements.       */      _Expr<_ValFunClos<_ValArray,_Tp>,_Tp> apply(_Tp func(_Tp)) const;      /**       *  @brief  Apply a function to the array.       *       *  Returns a new valarray with elements assigned to the result of       *  applying func to the corresponding element of this array.  The new       *  array is the same size as this one.       *       *  @param  func  Function of const Tp& returning Tp to apply.       *  @return  New valarray with transformed elements.       */      _Expr<_RefFunClos<_ValArray,_Tp>,_Tp> apply(_Tp func(const _Tp&)) const;      /**       *  @brief  Resize array.       *       *  Resize this array to be @a size and set all elements to @a c.  All       *  references and iterators are invalidated.       *       *  @param  size  New array size.       *  @param  c  New value for all elements.       */      void resize(size_t __size, _Tp __c = _Tp());    private:      size_t _M_size;      _Tp* __restrict__ _M_data;            friend class _Array<_Tp>;    };    template<typename _Tp>    inline const _Tp&    valarray<_Tp>::operator[](size_t __i) const    {       __glibcxx_requires_subscript(__i);      return _M_data[__i];     }  template<typename _Tp>    inline _Tp&    valarray<_Tp>::operator[](size_t __i)    {       __glibcxx_requires_subscript(__i);      return _M_data[__i];     }} // std::#include <bits/valarray_after.h>#include <bits/slice_array.h>#include <bits/gslice.h>#include <bits/gslice_array.h>#include <bits/mask_array.h>#include <bits/indirect_array.h>namespace std{  template<typename _Tp>    inline    valarray<_Tp>::valarray() : _M_size(0), _M_data(0) {}  template<typename _Tp>    inline     valarray<_Tp>::valarray(size_t __n) 	: _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))    { std::__valarray_default_construct(_M_data, _M_data + __n); }  template<typename _Tp>    inline    valarray<_Tp>::valarray(const _Tp& __t, size_t __n)      : _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))    { std::__valarray_fill_construct(_M_data, _M_data + __n, __t); }  template<typename _Tp>    inline    valarray<_Tp>::valarray(const _Tp* __restrict__ __p, size_t __n)      : _M_size(__n), _M_data(__valarray_get_storage<_Tp>(__n))    {       _GLIBCXX_DEBUG_ASSERT(__p != 0 || __n == 0);      std::__valarray_copy_construct(__p, __p + __n, _M_data);     }  template<typename _Tp>    inline    valarray<_Tp>::valarray(const valarray<_Tp>& __v)      : _M_size(__v._M_size), _M_data(__valarray_get_storage<_Tp>(__v._M_size))    { std::__valarray_copy_construct(__v._M_data, __v._M_data + _M_size, _M_data); }  template<typename _Tp>    inline    valarray<_Tp>::valarray(const slice_array<_Tp>& __sa)      : _M_size(__sa._M_sz), _M_data(__valarray_get_storage<_Tp>(__sa._M_sz))    {      std::__valarray_copy	(__sa._M_array, __sa._M_sz, __sa._M_stride, _Array<_Tp>(_M_data));    }  template<typename _Tp>    inline    valarray<_Tp>::valarray(const gslice_array<_Tp>& __ga)      : _M_size(__ga._M_index.size()),	_M_data(__valarray_get_storage<_Tp>(_M_size))    {      std::__valarray_copy	(__ga._M_array, _Array<size_t>(__ga._M_index),	 _Array<_Tp>(_M_data), _M_size);    }  template<typename _Tp>    inline    valarray<_Tp>::valarray(const mask_array<_Tp>& __ma)      : _M_size(__ma._M_sz), _M_data(__valarray_get_storage<_Tp>(__ma._M_sz))    {      std::__valarray_copy	(__ma._M_array, __ma._M_mask, _Array<_Tp>(_M_data), _M_size);    }  template<typename _Tp>    inline    valarray<_Tp>::valarray(const indirect_array<_Tp>& __ia)      : _M_size(__ia._M_sz), _M_data(__valarray_get_storage<_Tp>(__ia._M_sz))    {      std::__valarray_copy	(__ia._M_array, __ia._M_index, _Array<_Tp>(_M_data), _M_size);    }  template<typename _Tp> template<class _Dom>    inline    valarray<_Tp>::valarray(const _Expr<_Dom, _Tp>& __e)      : _M_size(__e.size()), _M_data(__valarray_get_storage<_Tp>(_M_size))    { std::__valarray_copy(__e, _M_size, _Array<_Tp>(_M_data)); }  template<typename _Tp>    inline    valarray<_Tp>::~valarray()    {      std::__valarray_destroy_elements(_M_data, _M_data + _M_size);      std::__valarray_release_memory(_M_data);    }  template<typename _Tp>    inline valarray<_Tp>&    valarray<_Tp>::operator=(const valarray<_Tp>& __v)    {      _GLIBCXX_DEBUG_ASSERT(_M_size == __v._M_size);      std::__valarray_copy(__v._M_data, _M_size, _M_data);      return *this;    }  template<typename _Tp>    inline valarray<_Tp>&    valarray<_Tp>::operator=(const _Tp& __t)    {      std::__valarray_fill(_M_data, _M_size, __t);      return *this;    }  template<typename _Tp>    inline valarray<_Tp>&    valarray<_Tp>::operator=(const slice_array<_Tp>& __sa)    {      _GLIBCXX_DEBUG_ASSERT(_M_size == __sa._M_sz);      std::__valarray_copy(__sa._M_array, __sa._M_sz,			   __sa._M_stride, _Array<_Tp>(_M_data));      return *this;    }  template<typename _Tp>    inline valarray<_Tp>&    valarray<_Tp>::operator=(const gslice_array<_Tp>& __ga)    {      _GLIBCXX_DEBUG_ASSERT(_M_size == __ga._M_index.size());      std::__valarray_copy(__ga._M_array, _Array<size_t>(__ga._M_index),			   _Array<_Tp>(_M_data), _M_size);      return *this;    }  template<typename _Tp>    inline valarray<_Tp>&    valarray<_Tp>::operator=(const mask_array<_Tp>& __ma)    {      _GLIBCXX_DEBUG_ASSERT(_M_size == __ma._M_sz);      std::__valarray_copy(__ma._M_array, __ma._M_mask,			   _Array<_Tp>(_M_data), _M_size);

⌨️ 快捷键说明

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