| 19 | } |
| 20 | |
| 21 | int main() |
| 22 | { |
| 23 | const size_t num_numbers{ 25'000 }; |
| 24 | std::vector<int> numbers(num_numbers); |
| 25 | |
| 26 | /* Caution: a pseudo-random number generator cannot safely be accessed concurrently! */ |
| 27 | auto generator{ createUniformPseudoRandomNumberGenerator(0, 10'000) }; |
| 28 | std::ranges::generate(numbers, std::ref(generator)); |
| 29 | |
| 30 | // Algorithm number two |
| 31 | std::sort(std::execution::par, begin(numbers), end(numbers)); |
| 32 | |
| 33 | // And number three; this time combined with the remove-erase idiom (or unique-erase, if you will) |
| 34 | numbers.erase(std::unique(std::execution::par, begin(numbers), end(numbers)), end(numbers)); |
| 35 | |
| 36 | std::cout << "Number of unique numbers: " << numbers.size() << std::endl; |
| 37 | } |
nothing calls this directly
no test coverage detected