std::seed_seq::seed_seq
提供: cppreference.com
<tbody>
</tbody>
seed_seq(); |
(1) | (C++11以上) |
seed_seq( const seed_seq& ) = delete; |
(2) | (C++11以上) |
template< class InputIt > seed_seq( InputIt begin, InputIt end ); |
(3) | (C++11以上) |
template< class T > seed_seq( std::initializer_list<T> il ); |
(4) | (C++11以上) |
1) デフォルトコンストラクタ。 長さゼロの初期シードシーケンスを持つ
std::seed_seq オブジェクトを作成します。2) コピーコンストラクタは削除されています。
std::seed_seq はコピー可能ではありません。3) 範囲
をコピーする (つまり、下位32ビットをコピーする) ことによって取得された初期シードシーケンスを使用して、
[begin, end) をイテレートし、そのイテレータを逆参照することによって取得された値の modulo 232をコピーする (つまり、下位32ビットをコピーする) ことによって取得された初期シードシーケンスを使用して、
std::seed_seq を構築します。引数
| begin, end | - | std::iterator_traits<>::value_type が整数型である一組の入力イテレータとして表される初期シードシーケンス
|
| il | - | 初期シードシーケンスを提供する、整数型のオブジェクトの std::initializer_list |
| 型の要件 | ||
-InputIt は LegacyInputIterator の要件を満たさなければなりません。
|
例外
1) 投げません。
例
Run this code
#include <random>
#include <sstream>
#include <iterator>
int main()
{
std::seed_seq s1; // default-constructible
std::seed_seq s2{1, 2, 3}; // can use list-initialization
std::seed_seq s3 = {-1, 0, 1}; // another form of list-initialization
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::seed_seq s4(a, a + 10); // can use iterators
std::istringstream buf("1 2 3 4 5");
std::istream_iterator<int> beg(buf), end;
std::seed_seq s5(beg, end); // even stream input iterators
}