В моем приложении у меня есть следующие требования:
-
Структура данных будет заполняться только один раз с некоторыми значениями (не пары ключ/значение). Значения могут повторяться, но я хочу, чтобы структура данных сохраняла их только один раз.
-
Я буду повторять 100-е годы через все элементы структуры данных, созданные выше. Порядок, в котором элементы появляются на итерации, несуществен.
Ограничение 1 предполагает, что мне придется либо использовать set, либо unordered_set, поскольку данные не находятся в форме пар значений ключа.
Теперь установка вставки дороже, чем вставка unordered_set, но структура данных заполняется только один раз в начале моей программы.
Я считаю, что решающим фактором будет то, как быстро я могу выполнять итерацию по всем элементам структуры данных. Я не уверен, что для этой цели будет быстрее или неупорядочено. Я считаю, что стандарт не упоминает об этом факте, поскольку эта операция будет O (n) для любой структуры данных. Но мне интересно, для какой структуры данных iterator.next() будет быстрее.