C++ Valarray 库 - gslice 函数



描述

valarray 广义切片由起始索引、一组大小和一组步长指定,此类表示 valarray 广义切片选择器(多维切片)。它不包含也不引用任何元素 - 它只描述一个元素选择,用作 valarray::operator[] 中的索引。

声明

以下是 std::gslice 函数的声明。

class gslice;

C++11

class gslice;

参数

返回值

异常

**基本保证** - 如果对元素执行的任何操作抛出异常。

数据竞争

访问所有有效复制的元素。

示例

以下示例说明了 std::gslice 函数。

#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;
}

让我们编译并运行上述程序,这将产生以下结果:

gslice: 1 3 5 8 10 0
valarray.htm
广告