std::valarray<T>:: cshift
From cppreference.net
|
valarray
<
T
>
cshift
(
int
count
)
const
;
|
||
同じサイズの新しいvalarrayを返します。要素の位置は count 要素分だけ循環的にシフトされます。
count の非負の値は要素を循環的に左に count 回シフトし、 count の負の値は要素を循環的に右に - count 回シフトします。
目次 |
パラメータ
| 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.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の要素をゼロ埋めシフトする
(公開メンバ関数) |