Last active
April 18, 2017 16:04
-
-
Save deque-blog/e5ba91991acdbe06a045c0898c7ff12e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
template<class RollCountGenerator, class KeyGenerator, class ValueGenerator> | |
auto unordered_map_gen(RollCountGenerator roll_count_gen, | |
KeyGenerator key_gen, | |
ValueGenerator value_gen) | |
{ | |
return [=](std::mt19937& bit_gen) | |
{ | |
int count = roll_count_gen(bit_gen); | |
std::unordered_map<decltype(key_gen(bit_gen)) | |
,decltype(value_gen(bit_gen))> out; | |
out.reserve(count); | |
details::repeat_n_gen(std::inserter(out, out.end()), | |
count, pair_gen(key_gen, value_gen), bit_gen); | |
return out; | |
}; | |
} | |
template<typename KeyGenerator, typename ValueGenerator> | |
auto unordered_map_gen(int max_rolls, | |
KeyGenerator key_gen, | |
ValueGenerator value_gen) | |
{ | |
return unordered_map_gen(int_gen(0, max_rolls), key_gen, value_gen); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment