C++ Valarray Library - gslice Function
Description
A valarray generalized slice is specified by a starting index, a set of sizes, and a set of strides and this class represents a valarray generalized slice selector (a multidimensional slice). It does not contain nor refers to any element - it only describes a selection of elements to be used as an index in valarray::operator[].
Declaration
Following is the declaration for std::gslice function.
class gslice;
C++11
class gslice;
Parameters
none
Return Value
none
Exceptions
Basic guarantee − if any operation performed on the elements throws an exception.
Data races
All elements effectively copied are accessed.
Example
In below example explains about std::gslice function.
#include <iostream>
#include <cstddef>
#include <valarray>
int main () {
std::valarray<int> foo (12);
for (int i=0; i<12; ++i) foo[i]=i;
std::size_t start=1;
std::size_t lengths[]= {2,3};
std::size_t strides[]= {7,2};
std::gslice mygslice (start,
std::valarray<std::size_t>(lengths,2),
std::valarray<std::size_t>(strides,2));
std::valarray<int> bar = foo[mygslice];
std::cout << "gslice:";
for (std::size_t n=0; n<bar.size(); n++)
std::cout << ' ' << bar[n];
std::cout << '\n';
return 0;
}
Let us compile and run the above program, this will produce the following result −
gslice: 1 3 5 8 10 0
valarray.htm