A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../algorithm/../language/../experimental/sample.html below:

std::experimental::sample - cppreference.com

template< class PopulationIterator, class SampleIterator,

          class Distance, class URBG >
SampleIterator sample( PopulationIterator first, PopulationIterator last,
                       SampleIterator out, Distance n,

                       URBG&& g );
(1) (library fundamentals TS) template< class PopulationIterator, class SampleIterator, class Distance >

SampleIterator sample( PopulationIterator first, PopulationIterator last,

                       SampleIterator out, Distance n );
(2) (library fundamentals TS v2)

Selects n elements from the sequence [firstlast) such that each possible sample has equal probability of appearance, and writes those selected elements 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 requirements of LegacyForwardIterator.

1) Random numbers are generated using the random number generator g.

[edit] 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 [firstlast) n - number of samples to make g - the random number generator used as the source of randomness -PopulationIterator must meet the requirements of LegacyInputIterator. -SampleIterator must meet the requirements of LegacyOutputIterator. -SampleIterator must also meet the requirements of LegacyRandomAccessIterator 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. [edit] Return value

Returns a copy of out after the last sample that was output, that is, end of the sample range.

[edit] Complexity

Linear in std::distance(first, last).

[edit] Notes

This function may implement selection sampling or reservoir sampling.

[edit] Example
#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';
}

Possible output:

five random letters out of abcdefgh : cdefg
[edit] See also

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4