void sweepWithActiveSet(List<Event> events) {
events.sort(this::eventOrder);
TreeSet<Item> active = new TreeSet<>(this::itemOrder);
for (Event event : events) {
if (event.starts) active.add(event.item);
else active.remove(event.item);
use(active, event);
}
}
def sweep_with_active_set(events) -> None:
active = OrderedSet()
for event in sorted(events, key=event_order):
if event.starts:
active.add(event.item)
else:
active.remove(event.item)
use(active, event)
def sweepWithActiveSet(events: Vector[Event]): Unit =
val active = scala.collection.mutable.TreeSet[Item]()(itemOrder)
for event <- events.sortBy(eventOrder) do
if event.starts then active += event.item
else active -= event.item
use(active, event)
void sweepWithActiveSet(std::vector<Event> events) {
std::sort(events.begin(), events.end(), eventOrder);
std::set<Item, ItemOrder> active;
for (const Event& event : events) {
if (event.starts) active.insert(event.item);
else active.erase(event.item);
use(active, event);
}
}