title: Recursively finding all combinations 'n' of set<int> stored in a map. How do I "choose"?
body: <p>I understand the overarching idea of what I want to do, but I'm not sure how to begin with implementation. I have a map of named int sets. Meaning the keys are strings and the values are set. </p>
  
  <pre><code>map&lt;string, set&lt;int&gt; &gt; data;
  </code></pre>
  
  <p>I want to find the max # of unique ints shared between 'n' sets. So I need to check all possible combinations and update some max variable every time I come across a better combination.</p>
  
  <p>From what I gather I need to use Iterators to traverse through the map values. So am I carrying around 'n' Iterators in my recursive function? What would my base case even look like? Would it be it.end() of the first value being chosen? I'm a bit lost as you can imagine.</p>
  
  <p>I am willing to abandon the map (tho I'd prefer to stick with it so that I can keep a name) and use something simpler like a vector for the sets if that simplifies things (which it seems like it might). Hmm...</p>