• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function
    <valarray>

    std::gslice::コンストラクタ

    gslice();                              // (1)
    
    gslice(std::size_t start,
           valarray<std::size_t> lengths,
           valarray<std::size_t> strides); // (2)
    
    gslice(const slice&);                  // (3)
    

    gsliceオブジェクトの構築

    gsliceオブジェクトを次に示す通りの要素で初期化する。

    • (1) :
      • C++03 : 未規定
      • C++11 : gslice( 0, valarray<size_t>(), valarray<size_t>() )と等価。
    • (2) : 初期位置startから要素数群lengthsと間隔数群stridesでスライスするgsliceオブジェクトを構築する。
      • lengthsstridesはインデックス0番目から順に読み出され、strides[0]個おきにlengths[0]個を選び、そのそれぞれの位置からさらにstrides[1]個おきにlengths[1]個を選び…とスライスされる。
    • (3) : コピーコンストラクタ。コピー元のgsliceオブジェクトと同じ初期位置、要素数群、間隔数群でスライスするgsliceオブジェクトを構築する。

    パラメータ

    • start
      • スライスする初期位置。
    • lengths
      • スライスする要素数群。
    • strides
      • スライスする間隔数群。

    #include <valarray>
    #include <iostream>
    #include <sstream>
    
    auto main()
      -> int
    {
    
      std::gslice gs0;
    
      constexpr auto             start   = 3;
      std::valarray<std::size_t> lengths = {  3, 4 };
      std::valarray<std::size_t> strides = { 10, 3 };
    
      std::gslice gs1( start, lengths, strides );
    
      std::gslice gs2( gs1 );
    
      auto to_string = []( const std::valarray<std::size_t> a )
        {
          std::stringstream r;
          for ( auto v : a )
            r << v << " ";
          return r.str();
        }
        ;
    
      auto print = [ &to_string ]( const std::gslice& gs )
        {
          std::cout
            << "[" << &gs << "]:" "\n"
               "start : " << gs.start()               << "\n"
               "size  : " << to_string( gs.size()   ) << "\n"
               "stride: " << to_string( gs.stride() ) << "\n"
            ;
        }
        ;
    
      print( gs0 );
      print( gs1 );
      print( gs2 );
    }
    

    出力例

    [0x7fff4fe25758]:
    start : 0
    size  : 
    stride: 
    [0x7fff4fe256d8]:
    start : 3
    size  : 3 4 
    stride: 10 3 
    [0x7fff4fe256d0]:
    start : 3
    size  : 3 4 
    stride: 10 3 
    

    参照