set_symmetric_difference... ?

1
2
3
4
Let: array1 = {1,2,3,4,5}  || vector<int> array1; array1.reserve(100);
     array2 = {1,3,4,5}    || vector<int> array2; array2.reserve(100);
     result = {}           || vector<int> result; result.reserve(200);
                           || vector<int>::iterator it; 

Why does the following code return value: 576584465919122121 instead of 2?

1
2
it = set_symmetric_difference(array1.begin(),array1.end(),array2.begin(),array2.end(),result.begin());
out << *it;


Or should I use this instead ? ( Using this returns void -- no result / blank )

1
2
3
4
5
set_symmetric_difference(array1.begin(),array1.end(),array2.begin(),array2.end(),result.begin());
for (it = result.begin(); it != result.end(); ++it)
{
	out << *it;
}
Last edited on
set_symmetric_difference returns an iterator to one past the last element that was written to in result.
1
2
3
4
for (vector<int>::iterator it2 = result.begin(); it2 != it; ++it2)
{
	out << *it2;
}
Thanks again Peter :)
Topic archived. No new replies allowed.