The function swaps the value of each element with that of some other randomly chosen element. When provided, the function rand chooses which element.
The behavior of this function template is equivalent to:
| 1 2 3 4 5 6 7 8 |
|
Parameters
- first, last
- Forward iterators to the initial and final positions of the sequence to be shuffled. The range used is [first,last), which contains all the elements between first and last, including the element pointed by first but not the element pointed by last.
- rand
- Pointer to unary function taking one argument and returning a value, both of the appropriate difference type (generally ptrdiff_t). The function shall return a value between zero and its argument (lower than this).
Return value
noneExample
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
A possible output:
myvector contains: 3 4 1 6 8 9 2 7 5 |
Complexity
Linear: As many calls to swap as the length of the range [first,last) minus 1.See also
| rotate | Rotate elements in range (function template) |
| reverse | Reverse range (function template) |
| generate | Generate values for range with function (function template) |
| swap | Exchange values of two objects (function template) |
