intersección de n vectores

Soy nuevo en programación y recientemente me he encontrado con un problema al encontrar la intersección de n vectores (vectores int) que han ordenado ints. El enfoque que se me ocurrió tiene una complejidad de O (n ^ 2) y estoy usando la función std :: set_intersect.

El enfoque que se me ocurrió es tener dos vectores: el primer vector correspondería al primer vector que tengo, y el segundo sería el segundo vector. Llamo a la intersección establecida en los dos y sobrescribo al primer vector, luego uso la función de limpieza de vectores en el segundo. Luego sobrescribo el siguiente vector al segundo, y repito el proceso, y finalmente devuelvo el primer vector.

Creo que hay una manera más eficiente de hacerlo, pero por el momento, no puedo pensar en una manera más eficiente. Cualquier ayuda sobre este tema sería muy apreciada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta