値のコピーを作成せずに、別のオブジェクトstd::valarray
から値の範囲を参照する範囲を取得したいと考えています。ドキュメントには、インデックス演算子に関連して、これを実現するにはまたはブールオブジェクトをパラメーターとして使用する必要があると記載されています。valarray
[]
std::slice
std::gslice
std::valarray
slice_array
gslice_array
mask_array
slice_array<T> operator[] (slice slc);
gslice_array<T> operator[] (const gslice& gslc);
mask_array<T> operator[] (const valarray<bool>& msk);
indirect_array<T> operator[] (const valarray<size_t>& ind);
これらの戻り値の型の説明を見ると、それらはすべて同じです! 次の説明を確認してください: slice_array、gslice_array、mask_array、indirect_array。
では、どの状況でどちらを使用すればよいのでしょうか? 私はそれを理解してmask_array
おり、indirect_array
特定の範囲から値を選択することに重点を置いているように見えますが、slice_array
/はgslice_array
どうですか?
私の場合は、slice_array
私がやっていることとほとんど同じように聞こえるので、一緒に行くことを考えています (私はスライスしていますよね?)。しかし、私はもっと具体的なものが好きです!