Talk:cpp/algorithm/random shuffle
From cppreference.com
[edit] Off-by-one error in example?
'last - first' returns the number of elements in the range/container. But the valid index (e.g. for std::vector) available for operator[] runs from 0 ... (last-first-1) for non-empty ranges/containers and the interval for the random number generator is inclusive (contrary to the ususal practise in C++), so it contains both intervall borders. --217.229.69.239 04:56, 30 March 2022 (PDT)
- Looks fine to me, max value of
i
is(last-first-1)
, so that's the max value that can be returned by std::uniform_int_distribution<diff_t>()(g, param_t(0, i)) --Ybab321 (talk) 05:54, 30 March 2022 (PDT)
- A, I see: n is (last-first), but the for()-loop starts with n-1, not with n, for whatever reason. Very confusing. :-( --217.229.69.239 08:13, 30 March 2022 (PDT)