Reference

class
<valarray>

std::gslice

class gslice;
Valarray generalized slice selector
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[] .

A valarray generalized slice is specified by a starting index, a set of sizes, and a set of strides. It produces a multidimensional combination of slice selections, where:

The starting index (start ) is the index of the first element in the selection.
The size (size ) is the number of elements in the selection.
The stride (stride ) is the span that separates the elements selected.

For example, a gslice with:
start = 1
size = {2, 3}
stride = {7, 2}

would select:


 [0][1][2][3][4][5][6][7][8][9][10][11][12][13]
start=1: *
 |
size=2, stride=7: *--------------------*
 | |
size=3, stride=2: *-----*-----* *------*------*
 | | | | | |
gslice: * * * * * *
 [0][1][2][3][4][5][6][7][8][9][10][11][12][13]


Member functions

(constructor)
gslice constructor (public member function)
gslice::start
Return start of gslice (public member function)
gslice::size
Return sizes of gslice (public member function)
gslice::stride
Return strides of gslice (public member function)

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 << "gslice:";
 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

slice
Valarray slice selector (class)
gslice_array
Valarray gslice selection (class template)

AltStyle によって変換されたページ (->オリジナル) /