Sorry, forgot to include the libstdc++ list.

On 2016-05-01 16:18, Eelis wrote:
Hi,

The attached patch optimizes std::shuffle for the very common case
where the generator range is large enough that a single invocation
can produce two swap positions.

This reduces the runtime of the following testcase by 37% on my machine:

     int main()
     {
         std::mt19937 gen;

         std::vector<int> v;
         v.reserve(10000);
         for (int i = 0; i != 10000; ++i)
         {
             v.push_back(i);
             std::shuffle(v.begin(), v.end(), gen);
         }

         std::cout << v.front() << '\n';
     }

Thoughts?

Thanks,

Eelis



Reply via email to