• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    class
    <valarray>

    std::slice

    namespace std {
      class slice;
    }
    

    概要

    sliceは、std::valarray クラスの operator[] メンバ関数にスライスの指示を与えるためのヘルパークラスである。

    メンバ関数

    構築・破棄

    名前 説明 対応バージョン
    (constructor) コンストラクタ

    プロパティ

    名前 説明 対応バージョン
    start スライスを生成する初期位置を取得する
    size 生成するスライスの要素数を取得する
    stride スライスを生成する間隔を取得する

    比較演算子

    名前 説明 対応バージョン
    operator== 等値比較を行う C++20
    friend bool operator!=(const slice&, const slice&); 非等値比較を行う (operator==により使用可能) C++20

    #include <valarray>
    #include <iostream>
    #include <numeric>
    
    auto main()
      -> int
    {
      std::valarray<int> a( 32 );
      std::iota( std::begin(a), std::end(a), 16 );
    
      constexpr auto start  = 3;
      constexpr auto length = 5;
      constexpr auto stride = 7;
    
      std::slice s( start, length, stride );
    
      auto sliced_array = a[ s ];
    
      decltype( a ) b( sliced_array );
    
      for ( auto v : b )
        std::cout << v << "\n";
      std::cout << std::flush;
    }
    

    出力

    19
    26
    33
    40
    47