Namespaces
Variants

std::valarray<T>::shift

ja.cppreference.net より
 
 
 
 
valarray<T> shift( int count ) const;

同じサイズの新しい valarray を返します。要素の位置は count 要素分シフトされます。各要素の新しい位置は i−count ここで i は元の位置です。シフトされて入ってくる要素の値は T().

パラメータ

count - 要素をシフトする位置の数

戻り値

シフトされた要素を持つ結果のvalarray。

注釈

関数は、std::valarrayとは異なる戻り値型で実装されることがあります。この場合、置換型は以下の特性を持ちます:

  • すべての const メンバ関数が std::valarray に提供されます。
  • std::valarray、std::slice_array、std::gslice_array、std::mask_array および std::indirect_array は、置換型から構築できます。
  • const std::valarray<T>& を取るすべての関数について、ただし begin() および end()(C++11から) を除き、置換型を取る同一の関数が追加されなければなりません。
  • 2つの const std::valarray<T>& 引数を取るすべての関数について、const std::valarray<T>& と置換型のすべての組み合わせを取る同一の関数が追加されなければなりません。
  • 戻り値型は、最も深くネストされた引数型に対して、テンプレートのネストを2レベル以上追加してはなりません。

例

#include <iostream>
#include <valarray>
int main()
{
    std::valarray<int> v{1, 2, 3, 4, 5, 6, 7, 8};
    for (auto const& val : v)
        std::cout << val << ' ';
    std::cout << '\n';
    std::valarray<int> v2 = v.shift(2);
    for (auto const& val : v2)
        std::cout << val << ' ';
    std::cout << '\n';
}

出力:

1 2 3 4 5 6 7 8 
3 4 5 6 7 8 0 0

関連項目

valarrayの要素を循環シフト
(公開メンバ関数)