Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Speichert einen Vektor ganzzahliger Werte ohne Vorzeichen, die einen zufällig festgelegten Startwert für eine Zufallszahlen-Engine angeben können.
Syntax
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;
};
Typen
typedef unsigned int result_type;
Der Typ der Elemente der seed-Sequenz. Eine 32-Bit-Ganzzahl ohne Vorzeichen
Konstruktoren
seed_seq();
Standardkonstruktor, initialisiert für eine leere interne Sequenz.
template<class T>
seed_seq(initializer_list<T> initlist);
Verwendet initlist, um die interne Sequenz festzulegen.
T muss ein Ganzzahltyp sein.
template<class InputIterator>
seed_seq(InputIterator begin, InputIterator end);
Initialisiert die interne Sequenz mithilfe aller Elemente im bereitgestellten Eingabeiteratorbereich.
iterator_traits<InputIterator>::value_type muss ein Ganzzahltyp sein.
Member
Erstellen von Funktionen
template<class RandomAccessIterator>
void generate(RandomAccessIterator begin,
RandomAccessIterator end);
Trägt die Elemente der bereitgestellten Sequenz mithilfe eines internen Algorithmus ein. Dieser Algorithmus wird von der internen Sequenz beeinflusst, mit der seed_seq initialisiert wurde.
Bleibt untätig, wenn begin == end ist.
Eigenschaftenfunktionen
size_t size() const;
Gibt die Anzahl von Elementen in der seed_seq zurück.
template<class OutputIterator>
void param(OutputIterator dest) const;
Kopiert die interne Sequenz in den Eingabeiterator dest.
Beispiel
Das folgende Codebeispiel führt die drei Konstruktoren aus und erzeugt eine Ausgabe aus den resultierenden seed_seq-Instanzen, wenn sie einem Array zugeordnet sind. Ein Beispiel, das mit einem Zufallszahlengenerator verwendet seed_seq wird, finden Sie unter< "zufällig">.
#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
Hinweise
Memberfunktionen dieser Klasse lösen keine Ausnahmen aus.
Anforderungen
Header:<random>
Namespace: std