Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przechowuje wektor niepodpisanych wartości całkowitych, które mogą dostarczać losowe inicjatory dla aparatu liczb losowych.
Składnia
class seed_seq
{
public:
// types
typedef unsigned int result_type;
// constructors
seed_seq();
template <class T>
seed_seq(initializer_list<T> initlist);
template <class InputIterator>
seed_seq(InputIterator begin, InputIterator end);
// generating functions
template <class RandomAccessIterator>
void generate(RandomAccessIterator begin, RandomAccessIterator end);
// property functions
size_t size() const;
template <class OutputIterator>
void param(OutputIterator dest) const;
// no copy functions
seed_seq(const seed_seq&) = delete;
void operator=(const seed_seq&) = delete;
};
Typy
typedef unsigned int result_type;
Typ elementów sekwencji inicjowania. 32-bitowy typ liczby całkowitej bez znaku.
Konstruktory
seed_seq();
Domyślny konstruktor inicjuje pustą sekwencję wewnętrzną.
template<class T>
seed_seq(initializer_list<T> initlist);
Używa initlist do ustawiania sekwencji wewnętrznej.
T musi być typem całkowitym.
template<class InputIterator>
seed_seq(InputIterator begin, InputIterator end);
Inicjuje sekwencję wewnętrzną przy użyciu wszystkich elementów w podanym zakresie iteratora wejściowego.
iterator_traits<InputIterator>::value_type musi być typem całkowitym.
Elementy członkowskie
Generowanie funkcji
template<class RandomAccessIterator>
void generate(RandomAccessIterator begin,
RandomAccessIterator end);
Wypełnia elementy podanej sekwencji przy użyciu algorytmu wewnętrznego. Ten algorytm ma wpływ na sekwencję wewnętrzną, z którą seed_seq została zainicjowana.
Nic nie robi, jeśli begin == end.
Funkcje właściwości
size_t size() const;
Zwraca liczbę elementów w elem.seed_seq
template<class OutputIterator>
void param(OutputIterator dest) const;
Kopiuje sekwencję wewnętrzną do iteratora destwyjściowego .
Przykład
Poniższy przykład kodu wykonuje ćwiczenia trzech konstruktorów i generuje dane wyjściowe z wynikowych seed_seq wystąpień po przypisaniu do tablicy. Aby zapoznać się z przykładem używanym seed_seq z generatorem liczb losowych, zobacz <losowe>.
#include <iostream>
#include <random>
#include <string>
#include <array>
using namespace std;
void test(const seed_seq& sseq) {
cout << endl << "seed_seq::size(): " << sseq.size() << endl;
cout << "seed_seq::param(): ";
ostream_iterator<unsigned int> out(cout, " ");
sseq.param(out);
cout << endl;
cout << "Generating a sequence of 5 elements into an array: " << endl;
array<unsigned int, 5> seq;
sseq.generate(seq.begin(), seq.end());
for (unsigned x : seq) { cout << x << endl; }
}
int main()
{
seed_seq seed1;
test(seed1);
seed_seq seed2 = { 1701, 1729, 1791 };
test(seed2);
string sstr = "A B C D"; // seed string
seed_seq seed3(sstr.begin(), sstr.end());
test(seed3);
}
seed_seq::size(): 0
seed_seq::param():
Generating a sequence of 5 elements into an array:
505382999
163489202
3932644188
763126080
73937346
seed_seq::size(): 3
seed_seq::param(): 1701 1729 1791
Generating a sequence of 5 elements into an array:
1730669648
1954224479
2809786021
1172893117
2393473414
seed_seq::size(): 7
seed_seq::param(): 65 32 66 32 67 32 68
Generating a sequence of 5 elements into an array:
3139879222
3775111734
1084804564
2485037668
1985355432
Uwagi
Funkcje składowe tej klasy nie zgłaszają wyjątków.
Wymagania
Nagłówek:<losowy>
Przestrzeń nazw: std