Knuth shuffle: Difference between revisions

→‎C++: Added empty vector check to prevent unsigned overflow.
imported>Arakov
imported>SamTheTomato
(→‎C++: Added empty vector check to prevent unsigned overflow.)
Line 1,404:
=={{header|C++}}==
'''Compiler:''' [[g++]] (version 4.3.2 20081105 (Red Hat 4.3.2-7))
<syntaxhighlight lang="cpp" line="1">#include <cstdlib>
#include <algorithm>
#include <iterator>
Line 1,410:
template<typename RandomAccessIterator>
void knuthShuffle(RandomAccessIterator begin, RandomAccessIterator end) {
if(begin == end) {
return;
}
for(unsigned int n = end - begin - 1; n >= 1; --n) {
unsigned int k = rand() % (n + 1);
Anonymous user