Bienvenido a nuestra comunidad, ahora vas a hallar la respuesta de lo que necesitas.
Solución:
No ha proporcionado un iterador de salida para set_intersection
template
OutputIterator set_intersection ( InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
OutputIterator result );
Soluciona esto haciendo algo como
...;
set intersect;
set_intersection(s1.begin(), s1.end(), s2.begin(), s2.end(),
std::inserter(intersect, intersect.begin()));
Tu necesitas un std::insert
iterador ya que el conjunto está ahora vacío. no podemos usar std::back_inserter
o std::front_inserter
ya que set no admite esas operaciones.
Eche un vistazo a la muestra en el enlace: http://en.cppreference.com/w/cpp/algorithm/set_intersection
Necesita otro contenedor para almacenar los datos de la intersección, se supone que el siguiente código funciona:
std::vector common_data;
set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end(), std::back_inserter(common_data));
Consulte std::set_intersection. Debe agregar un iterador de salida, donde almacenará el resultado:
#include
std::vector s3;
set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end(), std::back_inserter(s3));
Ver Ideone para la lista completa.
Te invitamos a añadir valor a nuestra información tributando tu veteranía en las interpretaciones.