FreeBSD Manual Pages
std::experimental::sample(3) C++ Standard Libary std::experimental::sample(3) NAME std::experimental::sample - std::experimental::sample Synopsis Defined in header <experimental/algorithm> template< class PopulationIterator, class SampleIterator, class Distance, class URBG > SampleIterator sample( PopulationIterator first, (1) (library fundamentals TS) PopulationIterator last, SampleIterator out, Distance n, URBG&& g ); template< class PopulationIterator, class SampleIterator, class Distance > SampleIterator sample( PopulationIterator first, (2) (library fundamentals TS PopulationIterator last, v2) SampleIterator out, Distance n ); Selects n elements from the sequence [first, last) such that each possible sample has equal probability of appearance, and writes those selected ele- ments into the output iterator out. If n is greater than the number of elements in the sequence, selects last - first elements. The algorithm is stable only if PopulationIterator meets the re- quirements of LegacyForwardIterator. 1) Random numbers are generated using the random number generator g. 2) Random numbers are generated using the per-thread engine. Parameters first, last - pair of iterators forming the range from which to make the sampling (the population) out - the output iterator where the samples are written. Must not be in the range [first, last) n - number of samples to make g - the random number generator used as the source of randomness - PopulationIterator must meet the requirements of LegacyInputItera- tor. - SampleIterator must meet the requirements of LegacyOutputIterator. - SampleIterator must also meet the requirements of LegacyRandomAcces- sIterator if PopulationIterator doesn't meet LegacyForwardIterator. - PopulationIterator's value type must be writeable to out. - Distance must be an integer type. - URBG must meet the requirements of UniformRandomBitGenerator and its return type must be convertible to Distance. Return value Returns a copy of out after the last sample that was output, that is, end of the sample range. Complexity Linear in std::distance(first, last). Notes This function may implement selection sampling or reservoir sam- pling. Example // Run this code #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_in- serter(out), 5, std::mt19937{std::random_de- vice{}()}); std::cout << "five random letters out of " << in << " : " << out << '\n'; } Possible output: five random letters out of abcdefgh : cdefg See also random_shuffle shuffle randomly re-orders elements in a range (until C++17) (function template) (C++11) Category: * Noindexed pages http://cppreference.com 2024.06.10 std::experimental::sample(3)
NAME | Synopsis | Parameters | Return value | Complexity | Notes | Example | Possible output: | See also | Category:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::sample&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
