Рассматривали ли вы на самом деле его измерение?
Никто из нас не может сказать вам, как код, который вы рассматриваете, будет на самом деле работать. Напишите код, скомпилируйте его, запустите и измерьте, насколько быстро он работает.
Потратить время на то, чтобы предсказать, какое решение будет быстрее, (1) пустая трата времени и (2) вероятность получения неверных результатов.
Но если вам нужен абстрактный ответ, то это зависит от вашего варианта использования.
Если вы можете собрать все значения и отсортировать их один раз, это можно сделать за O(n lg n)
время.
Если вы вставляете элементы по одному в структуру данных с характеристиками производительности std::map
, то каждая вставка будет занимать O(lg n)
время, поэтому выполнение n
вставок также займет O(n lg n)
время. .
Вставка в хэш-карту (std::unordered_map
) занимает постоянное время, поэтому n
вставки можно выполнить в O(n)
. Таким образом, теоретически для достаточно больших значений n
карта хеша будет быстрее.
На практике, в вашем случае никто не знает. Вот почему вы должны измерить его, если вы на самом деле беспокоитесь о производительности.