名前空間
変種
操作

std::valarray<T>::cshift

From cppreference.com
< cpp‎ | numeric‎ | valarray
 
 
 
 
valarray<T> cshift( int count ) const;

要素の位置をcount要素だけ円環状にシフトした、同じサイズの新しいvalarrayを返します。

countが非負の値の場合、要素は左にcountだけ円環状にシフトされ、countが負の値の場合、要素は右に-countだけ円環状にシフトされます。

目次

[編集] パラメータ

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

[編集] 戻り値

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

[編集] 注記

この関数は、std::valarray とは異なる戻り値型で実装される場合があります。その場合、代替型は以下のプロパティを持ちます。

  • std::valarray のすべての const メンバ関数が提供されます。
  • std::valarraystd::slice_arraystd::gslice_arraystd::mask_array、および std::indirect_array は、代替型から構築できます。
  • 2つの const std::valarray<T>& 引数を受け取るすべての関数について、代替型を受け取る同一の関数が追加されます(begin() および end() を除く)。
  • 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 の要素をゼロ埋めでシフトします。
(public メンバ関数) [編集]
English 日本語 中文(简体) 中文(繁體)