std::experimental:: sample
|
Definiert im Header
<experimental/algorithm>
|
||
|
template
<
class
PopulationIterator,
class
SampleIterator,
class
Distance,
class
URBG
>
|
(1) | (Library Fundamentals TS) |
|
template
<
class
PopulationIterator,
class
SampleIterator,
class
Distance
>
SampleIterator sample
(
PopulationIterator first, PopulationIterator last,
|
(2) | (Library Fundamentals TS v2) |
Wählt
n
Elemente aus der Sequenz
[
first
,
last
)
so aus, dass jede mögliche Stichprobe die gleiche Erscheinungswahrscheinlichkeit hat, und schreibt die ausgewählten Elemente in den Ausgabeiterator
out
.
Wenn n größer ist als die Anzahl der Elemente in der Sequenz, werden last - first Elemente ausgewählt.
Der Algorithmus ist nur dann stabil, wenn
PopulationIterator
die Anforderungen eines
LegacyForwardIterator
erfüllt.
InhaltParameter
RückgabewertGibt eine Kopie von out nach der letzten ausgegebenen Probe zurück, also das Ende des Probenbereichs. KomplexitätLinear in std:: distance ( first, last ) . HinweiseDiese Funktion kann Auswahl-Stichproben oder Reservoir-Stichproben implementieren. Beispiel
Diesen Code ausführen
#include <experimental/algorithm> #include <iostream> #include <iterator> #include <random> #include <string> int main() { std::string in = "abcdefgh", out; std::experimental::sample(in.begin(), in.end(), std::back_inserter(out), 5, std::mt19937{std::random_device{}()}); std::cout << "five random letters out of " << in << " : " << out << '\n'; } Mögliche Ausgabe: five random letters out of abcdefgh : cdefg Siehe auch
| |||||||||||||||||||||||||||||||||