Вы можете разбить цикл на диапазоны индексов ковша, а затем создать итератор с внутренним байтом для обработки элементов. unordered_map
имеет .bucket_count()
и специфичные для ведра значения итератора begin(bucket_number)
, end(bucket_number)
, которые позволяют это. Предполагая, что вы не изменили значение по умолчанию max_load_factor()
с 1.0 и имеете разумную хэш-функцию, вы будете average 1 элемент на каждый ковш и не должны тратить слишком много времени на пустые ведра.