Вообще говоря, итерация по контейнеру, вероятно, займет примерно столько же времени, сколько итерация по другому, поэтому, если вы продолжаете добавлять к контейнеру, а затем итерируете по нему, это в основном вопрос выбора контейнера, который избегает постоянной перераспределить память и быстро вставить ее так, как вы хотите.
И list, и multimap избавят вас от необходимости перераспределять самих себя, просто добавляя элемент (как вы могли бы получить с вектором), поэтому в первую очередь вопрос того, сколько времени потребуется для вставки. Добавление в конец списка будет O (1), в то время как добавление в мультикарту будет O (log n). Однако мультикарта будет вставлять элементы в отсортированном порядке, в то время как если вы хотите отсортировать список, вам придется либо отсортировать список по O (n log n), либо вставить элемент отсортированным способом с помощью что-то вроде lower_bound, который будет O (n). В любом случае использовать список будет намного хуже (по крайней мере, в худшем случае).
Как правило, если вы поддерживаете контейнер в отсортированном порядке и постоянно добавляете к нему, а не создаете и сортируете его один раз, наборы и карты более эффективны, поскольку они предназначены для сортировки. Конечно, как всегда, если вы действительно заботитесь о производительности, вам нужно профилировать конкретное приложение и посмотреть, что работает лучше. Однако в этом случае я бы сказал, что это почти гарантия того, что мультикарта будет быстрее (особенно если у вас очень много элементов).