gslice
描述 (Description)
valarray广义切片由起始索引,一组大小和一组步幅指定,此类表示valarray通用切片选择器(多维切片)。 它不包含也不引用任何元素 - 它只描述了在valarray :: operator []中用作索引的元素选择。
声明 (Declaration)
以下是std :: gslice函数的声明。
class gslice;
C++11
class gslice;
参数 (Parameters)
没有
返回值 (Return Value)
没有
异常 (Exceptions)
Basic guarantee - 如果对元素执行的任何操作引发异常。
数据竞争 (Data races)
访问有效复制的所有元素。
例子 (Example)
在下面的例子中解释了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