00001 #include "GLRandomNumbersGenerator.h" 00002 #include "gl_utils.h" 00003 00009 template <class T> 00010 void gl_shuffle_vector(vector<T>& v) 00011 { 00012 int size = v.size(); 00013 //shuffle elements in vector. 00014 for(int i = 0; i < size; i++) 00015 { 00016 //choose random integer between i and size 00017 //[i; size) 00018 int j = GLRandomNumbersGenerator::getRandomInteger(i, size); 00019 //swap i-th and j-th elements of the vector. 00020 if (i == j) continue; 00021 int tmp = v[j]; 00022 v[j] = v[i]; 00023 v[i] = tmp; 00024 } 00025 }//gl_shuffle_vector