36 const std::size_t count = std::min(deme.size(), population.
size());
38 std::vector<std::size_t> indices(population.
size());
40 std::iota(indices.begin(), indices.end(), 0);
42 std::ranges::nth_element(
44 indices.begin() + count,
46 [&](
const std::size_t i) { return population[i]; }
49 for (std::size_t i = 0; i < count; ++i) {
50 population[indices[i]] = std::move(deme[i]);