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
