Name
slice_array class template — Helper class for slice
Synopsis
template <typename T> class slice_array { public: typedef T value_type; void operator=(const valarray<T>&) const; void operator*=(const valarray<T>&) const; void operator/=(const valarray<T>&) const; void operator%=(const valarray<T>&) const; void operator+=(const valarray<T>&) const; void operator-=(const valarray<T>&) const; void operator^=(const valarray<T>&) const; void operator&=(const valarray<T>&) const; void operator|=(const valarray<T>&) const; void operator<<=(const valarray<T>&) const; void operator>>=(const valarray<T>&) const; void operator=(const T&); ~slice_array( ); private: slice_array( ); slice_array(const slice_array&); slice_array& operator=(const slice_array&); };
The slice_array
class
template represents a subset of the elements of a valarray
, taken at periodic indices,
called a slice. To create a slice, use valarray
’s operator[]
with an argument of type
slice
.
For some operations, the slice_array
object is transparent. In
particular, you can assign a valarray
to a slice_array
object (provided they have the
same size), or you can construct a new valarray
from a slice_array
.
If you want to perform other operations, such as
non-assignment arithmetic, you must explicitly convert the slice_array
to valarray
, as demonstrated in Example 13-47.
Example
int main( ) { using namespace std; const int data[] = { 1,2,3,4,5,6,7,8,9,10,11,12,13 }; valarray<int> v(data, sizeof(data)/sizeof(data[0])); ...
Get C++ In a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.