Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Finds the symmetric difference between 2 sets.
// symmetric-difference.m
// RosettaCodeData
// Created by Ingy döt Net on 4/2/14.
#import <Foundation/Foundation.h>
int main(int argc, const char *argv[]) {
@autoreleasepool {
NSSet *setA = [NSSet setWithObjects:@"John", @"Serena", @"Bob", @"Mary", @"Serena", nil];
NSSet *setB = [NSSet setWithObjects:@"Jim", @"Mary", @"John", @"Jim", @"Bob", nil];
// Present our initial data set
NSLog(@"In set A: %@", setA);
NSLog(@"In set B: %@", setB);
// Get our individual differences.
NSMutableSet* notInSetA = [NSMutableSet setWithSet:setB];
[notInSetA minusSet:setA];
NSMutableSet* notInSetB = [NSMutableSet setWithSet:setA];
[notInSetB minusSet:setB];
// The symmetric difference is the concatenation of the two individual differences
NSMutableSet* symmetricDifference = [NSMutableSet setWithSet:notInSetA];
[symmetricDifference unionSet:notInSetB];
// Present our results
NSLog(@"Not in set A: %@", notInSetA);
NSLog(@"Not in set B: %@", notInSetB);
NSLog(@"Symmetric Difference: %@", symmetricDifference);
return 0;

This comment has been minimized.

Copy link
Owner Author

@jkereako jkereako commented Jan 21, 2015


This Gist shows a way of finding the symmetric difference between 2 sets.


Compile with this command

clang -fobjc-arc symmetric-difference.m -o symmetric-difference

And execute with this command

$ .\symmetric-difference


I manually forked this from ingydotnet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment