fix(moRndVectorVNSelection): use shuffle for modern compilers
This commit is contained in:
parent
732fe097cb
commit
51be7e324b
1 changed files with 11 additions and 5 deletions
|
|
@ -83,11 +83,17 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void init(EOT& /*_solution*/) {
|
virtual void init(EOT& /*_solution*/) {
|
||||||
if(order.size() == 0)
|
if(order.size() == 0)
|
||||||
for(unsigned int i = 0; i < LSvector.size(); i++)
|
for(unsigned int i = 0; i < LSvector.size(); i++) {
|
||||||
order.push_back(i);
|
order.push_back(i); }
|
||||||
|
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
std::random_device rd;
|
||||||
|
std::mt19937 gen(rd());
|
||||||
|
std::shuffle(order.begin(), order.end(), gen);
|
||||||
|
#else
|
||||||
UF_random_generator<unsigned int> gen(order.size());
|
UF_random_generator<unsigned int> gen(order.size());
|
||||||
std::random_shuffle(order.begin(), order.end(), gen);
|
std::random_shuffle(order.begin(), order.end(), gen);
|
||||||
|
#endif
|
||||||
|
|
||||||
currentOrder = 0;
|
currentOrder = 0;
|
||||||
current = order[currentOrder];
|
current = order[currentOrder];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue