Pregunta

En la actualidad, creo que mi mejor opción es utilizar std :: set_intersection, y luego comprobar si el tamaño de la entrada más pequeño es el mismo que el número de elementos ocupados por set_intersection.

¿Hay una solución mejor?

¿Fue útil?

Solución

Prueba esto:

if (std::includes(set_one.begin(), set_one.end(),
                  set_two.begin(), set_two.end()))
{
// ...
}

incluye () .

  

La incluye () algoritmo compara dos   secuencias ordenadas y devuelve true si   cada elemento en el rango [start2,   finish2) está contenido en el intervalo   [Start1, Fin1). Devuelve falso   de otra manera. incluye () asume que el   secuencias están ordenadas usando   operador <(), o utilizando el predicado   comp.

carreras en

  

En la mayoría ((Fin1 - start1) + (finish2   - start2)) * 2 -. 1 se realizan comparaciones

Plus O (n log (n)) para la clasificación de vectores. No lo conseguirá más rápido que eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top