public member function
<valarray>

std::gslice::gslice

default (1)
gslice();
initialization (2)
gslice (size_t start, const valarray<size_t>& lengths, const valarray<size_t>& strides);
copy (3)
gslice (const gslice& x);
gslice constructor
Constructs a gslice (generalized slice) object.

Parameters

start
Index of the first element in the generalized slice.
The index of the first element in a valarray is 0 (not 1).
lengths
valarray object with each element representing the number of elements (as size_t value) in each dimension of the slice.
strides
valarray object with each element representing the span that separates selected elements (dimension size).
x
gslice object (copy constructor).

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// gslice example
#include <iostream>     // std::cout
#include <cstddef>      // std::size_t
#include <valarray>     // std::valarray, std::gslice

int main ()
{
  std::valarray<int> foo (14);
  for (int i=0; i<14; ++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 << "foo:";
  for (std::size_t n=0; n<bar.size(); n++)
    std::cout << ' ' << bar[n];
  std::cout << '\n';

  return 0;
}

Output:

gslice: 1 3 5 8 10 12


See also