Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

random_shuffle
PrevUpHomeNext
Prototype

template<class RandomAccessRange>
RandomAccessRange& random_shuffle(RandomAccessRange& rng);

template<class RandomAccessRange>
const RandomAccessRange& random_shuffle(const RandomAccessRange& rng);

template<class RandomAccessRange, class Generator>
RandomAccessRange& random_shuffle(RandomAccessRange& rng, Generator& gen);

template<class RandomAccessRange, class Generator>
const RandomAccessRange& random_shuffle(const RandomAccessRange& rng, Generator& gen);

Description

random_shuffle randomly rearranges the elements in rng. The versions of random_shuffle that do not specify a Generator use an internal random number generator. The versions of random_shuffle that do specify a Generator use this instead. Returns the shuffles range.

Definition

Defined in the header file boost/range/algorithm/random_shuffle.hpp

Requirements

For the version without a Generator:

For the version with a Generator:

  • RandomAccessRange is a model of the Random Access Range Concept.
  • Generator is a model of the RandomNumberGeneratorConcept.
  • RandomAccessRange's distance type is convertible to Generator's argument type.
Precondition:
  • distance(rng) is less than gen's maximum value.
Complexity

Linear. If !empty(rng), exactly distance(rng) - 1 swaps are performed.


PrevUpHomeNext