set_symmetric_difference [C++ Reference]
Keywords: stl,algorithm,set_symmetric_difference
Date: 2010-04-07T05:36:00-0700

[[set_symmetric_difference]]
C++ Reference
Translations of this page?:

- en
- br-pt
- cn
- cz
- de
- es
- fr
- it
- jp
- nl
- pl
- ro
- ru
- sk
- tr
- tw

## set_symmetric_difference

Syntax:

        #include <algorithm>
        output_iterator set_symmetric_difference( input_iterator start1, input_iterator end1, input_iterator2 start2, input_iterator2 end2, output_iterator result );
        output_iterator set_symmetric_difference( input_iterator start1, input_iterator end1, input_iterator2 start2, input_iterator2 end2, output_iterator result, StrictWeakOrdering cmp );

The set_symmetric_difference() algorithm computes the symmetric difference of the two sets defined by [start1,end1) and [start2,end2) and stores the difference starting at result.

Both of the sets, given as ranges, must be sorted in ascending order.

The return value of set_symmetric_difference() is an iterator to the end of the result range.

If the strict weak ordering comparison function object cmp is not specified, set_symmetric_difference() will use the < operator to compare elements.

Example

    // set_symmetric_difference example
    #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;

    int main () {
      int first[] = {5,10,15,20,25};
      int second[] = {50,40,30,20,10};
      vector<int> v(10);                           // 0  0  0  0  0  0  0  0  0  0
      vector<int>::iterator it;

      sort (first,first+5);     //  5 10 15 20 25
      sort (second,second+5);   // 10 20 30 40 50

      it=set_symmetric_difference (first, first+5, second, second+5, v.begin());
                                                   // 5 15 25 30 40 50  0  0  0  0

      cout << "symmetric difference has " << int(it - v.begin()) << " elements.\n";

      return 0;
    }

Output: symmetric difference has 6 elements

Related Topics: includes, set_difference, set_intersection, set_union

Edit this page • Old revisions
• • • Login • Index • Recent changes • RSS • cc •