I understand that passing the length around can be useful if you pass dynamic arrays to your functions, but you could still write some reusable helper functions to handle statically-sized arrays:
template<typename T, std::size_t N>
std::size_t size(const T(&arr&)[N])
{
return N;
}
With this function, you can write:
int a[] = {1, 7, 3, 6, 5, 9, 2, 0, 4, 8};
int len = size(a);
You are using std::rand
, but you don't seed it with std::srand
first. Anyway, if you have a C++11 compiler, try to use the new <random>
module instead. Standard methods that may use std::rand
, such as std::random_shuffle
are even deprecated in C++14.