C++ gslice 类
-
定义和用法
class gslice;
std::gslice 表示valarray广义切片选择器(多维切片)。 它不包含也没有引用任何元素-它仅描述要在valarray::operator []中用作索引的元素的选择。valarray广义切片由起始索引,一组大小和一组跨度指定。 它产生切片选择的多维组合,其中:- 起始索引(start)是所选内容中第一个元素的索引。
- 大小(size)是所选内容中的元素数。
- 跨度(stride)是将所选元素分开的跨度。
例如,具有以下内容的gslice:- start = 1
- size = {2,3}
- stride = {7,2}
会选择:[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]
-
成员函数
成员函数 描述 (constructor) gslice构造函数(公共成员函数) gslice::start 返回gslice的开始(公共成员函数) gslice::size gslice的返回大小(公共成员函数) gslice::stride gslice的返回步幅(公共成员函数) -
示例
尝试一下// 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; }
输出gslice: 1 3 5 8 10 12
-
相关页面
slice Valarray切片选择器(类) gslice_array Valarray gslice选择(类模板)