У меня есть такая карта:
std::map<time_t, int>
Существует одно значение (int) в день (time_t). Некоторые дни могут иметь одинаковое значение и, следовательно, не могут быть уникальными. Мне нужно выполнить расчет для каждого уникального значения int из этой карты.
Каков самый быстрый (с наименьшим использованием ЦП) способ их получения?
std::map
на другую структуру данных? - person Luchian Grigore   schedule 21.02.2012map
. Если это число велико, вам следует поддерживать коллекцию значений (либо отдельныйmultiset
, либо отдельныйmap<int, size_t>
для подсчета, либо использование Boost.MultiIndex, и в каждом случае набор/карта может быть упорядочена или неупорядочена). Если число достаточно мало, то будет быстрее избежать накладных расходов при каждой модификации карты и просто копировать значения в новый набор или unordered_set каждый раз, когда они вам понадобятся. - person Steve Jessop   schedule 21.02.2012