diff --git a/bench/bench_set.hpp b/bench/bench_set.hpp index 3ea4292..4af500c 100644 --- a/bench/bench_set.hpp +++ b/bench/bench_set.hpp @@ -37,6 +37,19 @@ void compare_times(cpu_times time_numerator, cpu_times time_denominator){ std::cout << "----------------------------------------------" << '\n' << std::endl; } +template< class RandomIt > +void random_shuffle( RandomIt first, RandomIt last ) +{ + typedef typename boost::container::iterator_traits::difference_type difference_type; + difference_type n = last - first; + for (difference_type i = n-1; i > 0; --i) { + difference_type j = std::rand() % (i+1); + if(j != i) { + boost::adl_move_swap(first[i], first[j]); + } + } +} + boost::container::vector sorted_unique_range_int; boost::container::vector sorted_range_int; boost::container::vector random_unique_range_int; @@ -57,11 +70,11 @@ void fill_range_ints() //random_range_int std::srand(0); random_range_int.assign(sorted_range_int.begin(), sorted_range_int.end()); - std::random_shuffle(random_range_int.begin(), random_range_int.end()); + ::random_shuffle(random_range_int.begin(), random_range_int.end()); //random_unique_range_int std::srand(0); random_unique_range_int.assign(sorted_unique_range_int.begin(), sorted_unique_range_int.end()); - std::random_shuffle(random_unique_range_int.begin(), random_unique_range_int.end()); + ::random_shuffle(random_unique_range_int.begin(), random_unique_range_int.end()); } boost::container::vector sorted_unique_range_string; @@ -93,11 +106,11 @@ void fill_range_strings() //random_range_string std::srand(0); random_range_string.assign(sorted_range_string.begin(), sorted_range_string.end()); - std::random_shuffle(random_range_string.begin(), random_range_string.end()); + ::random_shuffle(random_range_string.begin(), random_range_string.end()); //random_unique_range_string std::srand(0); random_unique_range_string.assign(sorted_unique_range_string.begin(), sorted_unique_range_string.end()); - std::random_shuffle(random_unique_range_string.begin(), random_unique_range_string.end()); + ::random_shuffle(random_unique_range_string.begin(), random_unique_range_string.end()); } template diff --git a/proj/vc7ide/bench_set.vcproj b/proj/vc7ide/bench_set.vcproj index 8a69627..96b49f4 100644 --- a/proj/vc7ide/bench_set.vcproj +++ b/proj/vc7ide/bench_set.vcproj @@ -1,136 +1,135 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +