Namespaces
Variants

std::valarray<T>:: cshift

From cppreference.net
valarray < T > cshift ( int count ) const ;

同じサイズの新しいvalarrayを返します。要素の位置は count 要素分だけ循環的にシフトされます。

count の非負の値は要素を循環的に左に count 回シフトし、 count の負の値は要素を循環的に右に - count 回シフトします。

目次

パラメータ

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

戻り値

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

注記

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

#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.cshift(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 1 2

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 618 C++98 シフトされた要素の式に
ゼロ除算が含まれる場合 size() 0
式を使用せずに新しい位置を
記述する

関連項目

valarrayの要素をゼロ埋めシフトする
(公開メンバ関数)