Часто, более эффективно использовать отсортированный std::vector
вместо std::set
. Кто-нибудь знает библиотечный класс sorted_vector
, который в основном имеет аналогичный интерфейс с std::set
, но вставляет элементы в отсортированный вектор (так что нет дубликатов), использует двоичный поиск для элементов find
и т.д.?
Я знаю, что писать не сложно, но, вероятно, лучше не тратить время и использовать существующую реализацию.
Обновление: Причина использования отсортированного вектора вместо набора: если у вас есть сотни тысяч небольших наборов, которые содержат только 10 или около того, каждый из них имеет более эффективную память просто используйте отсортированные векторы.