• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function template
    <random>

    std::seed_seq::param

    template <class OutputIterator>
    void param(OutputIterator dest) const;
    

    概要

    シード列を取得する。

    効果

    32ビット単位になったシード列を、以下の式でdestにコピーする。

    vは、メンバ変数として保持される、vector<result_type>型のシード列オブジェクトである。

    戻り値

    なし

    例外

    • C++14 : OutputIterator要件のオブジェクトdestへの操作が、例外を投げる可能性がある

    #include <iostream>
    #include <random>
    #include <vector>
    #include <iterator>
    #include <limits>
    
    int main()
    {
      std::vector<std::uint64_t> seed_data = {
        1,
        2,
        std::numeric_limits<std::uint64_t>::max()
          // 64ビットの最大値を入れる。seed_seqによって32ビット値に変換される。
      };
    
      std::seed_seq seq(seed_data.begin(), seed_data.end());
    
      // シード列を取得
      std::vector<std::uint64_t> result;
      seq.param(std::back_inserter(result));
    
      for (std::uint64_t x : result) {
        std::cout << x << std::endl;
      }
    }
    

    出力

    1
    2
    4294967295
    

    バージョン

    言語

    • C++11

    処理系

    参照