C ++ set: contando elementos menos que un valor

Suponiendo que tengo un STLset <int> s y unint x, ¿cómo puedo contar el número de elementos ens que son menos quex?

Estoy buscando unO(log n) (o similar; cualquier cosa que sea razonablemente mejor queO(n)) solución;

Ya se sobrestd::distance(s.begin(), s.lower_bound(x)), pero eso esO(n)Creo porquesets no son de acceso aleatorio.

Respuestas a la pregunta(3)

Su respuesta a la pregunta