<valarray>

std::slice

class slice;
Valarray slice 选择器
此类表示一个 valarray slice 选择器。它不包含也不引用任何元素——它只描述一个元素选择,用于 valarray::operator[] 中的索引。

一个 valarray slice 由一个 起始索引、一个 大小 和一个 步长 定义。

起始索引 (start) 是选择中的第一个元素的索引。
大小 (size) 是选择中的元素数量。
步长 (stride) 是分隔所选元素的间隔。

因此,步长大于 1 的 slice 不会选择 valarray 中的连续元素; 例如,slice(3,4,5) 选择元素 3、8、13 和 18。

成员函数


示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// slice example
#include <iostream>     // std::cout
#include <cstddef>      // std::size_t
#include <valarray>     // std::valarray, std::slice

int main ()
{
  std::valarray<int> foo (12);
  for (int i=0; i<12; ++i) foo[i]=i;

  std::valarray<int> bar = foo[std::slice(2,3,4)];

  std::cout << "slice(2,3,4):";
  for (std::size_t n=0; n<bar.size(); n++)
	  std::cout << ' ' << bar[n];
  std::cout << '\n';

  return 0;
}

输出

slice(2,3,4): 2 6 10


另见