То, что вы постулируете карту поиска из идентификатора группы в список уникальных идентификаторов, представляющих отдельные структуры, означает, что вы не заинтересованы в поиске структур с использованием этих уникальных идентификаторов. Если это так, то, похоже, ваша проблема заключается в том, как получить правильное количество элементов в каждом сегменте ... вы можете сделать это, увеличив счетчик сегментов между сегментами, перенося их от последнего к первому, когда это необходимо, и назначив последовательные структуры. в соответствующее ведро.
Тем не менее, я подозреваю, что вы, вероятно, не выразили свои реальные потребности точно, и, возможно, вам нужно будет найти структуры, используя эти уникальные идентификаторы? Если это так, то решающий вопрос заключается в том, нужен ли вам статистически одинаково вероятный шанс того, что любая данная структура окажется связанной с каким-либо конкретным сегментом (например, структура-на-сегмент округляется и усредняется # структуры / # сегменты, но будет колебания), или вам это нужно точно. В первом случае хеш-карта звучит уместно. В противном случае, я не могу придумать особенно хорошего решения. Возможно, стоит упомянуть, что вы можете иметь указатели на значения и перемещать указатели вокруг, чтобы добиться некоторой балансировки нагрузки, избегая при этом перемещения реальных объектов.