Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::seed_seq::seed_seq

      From cppreference.com
      <cpp‎ |numeric‎ |random‎ |seed seq
       
       
       
      Pseudo-random number generation
       
       
      seed_seq()noexcept;
      (1)(since C++11)
      seed_seq(const seed_seq&)= delete;
      (2)(since C++11)
      template<class InputIt>
      seed_seq( InputIt begin, InputIt end);
      (3)(since C++11)
      template<class T>
      seed_seq(std::initializer_list<T> il);
      (4)(since C++11)
      1) The default constructor. After construction,v is empty.
      2) The copy constructor is deleted:std::seed_seq is not copyable.
      3) Constructs astd::seed_seq with the values in the range[beginend). Equivalent to default-initializingv  followed byfor(InputIt s= begin; s!= end;++s)
          v .push_back(modseed(*s));
      , where\(\scriptsize \mathrm{modseed}(x)=x \mod 2^{32} \)mod_seed(x)=x mod 232
      .
      Ifstd::iterator_traits<InputIt>::value_type is not an integer type, the program is ill-formed.
      IfInputIt does not satisfy the requirements ofLegacyInputIterator, the behavior is undefined.
      4) Equivalent toseed_seq(il.begin(), il.end()). This constructor enableslist-initialization from the list of seed values.
      This overload participates in overload resolution only ifT is an integer type.

      [edit]Parameters

      begin, end - the pair of iterators denoting the initial seed sequence
      il - the initial seed sequence

      [edit]Example

      Run this code
      #include <iterator>#include <random>#include <sstream> int main(){std::seed_seq s1;// default-constructiblestd::seed_seq s2{1,2,3};// can use list-initializationstd::seed_seq s3={-1,0,1};// another form of list-initializationint a[10]={1,2,3,4,5,6,7,8,9,10};std::seed_seq s4(a, a+10);// can use iteratorsstd::istringstream buf("1 2 3 4 5");std::istream_iterator<int> beg(buf), end;std::seed_seq s5(beg, end);// even stream input iterators}

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      LWG 2180C++11all constructors were non-throwingonly overload(1) is non-throwing
      LWG 3422C++111. overload(1) was not noexcept
      2. overload(4) was not constrainted
      1.made noexcept
      2. constrained
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/random/seed_seq/seed_seq&oldid=177243"

      [8]ページ先頭

      ©2009-2025 Movatter.jp