title: algorithm to remove elements in the intersection of two sets
body: <p>I have a Visual Studio 2008 C++03 application where I have two standard containers. I would like to remove from one container all of the items that are present in the other container (the intersection of the sets). </p>
  
  <p>something like this:</p>
  
  <pre><code>std::vector&lt; int &gt; items = /* 1, 2, 3, 4, 5, 6, 7 */;
  std::set&lt; int &gt; items_to_remove = /* 2, 4, 5*/;
  
  std::some_algorithm( items.begin, items.end(), items_to_remove.begin(), items_to_remove.end() );
  
  assert( items == /* 1, 3, 6, 7 */ )
  </code></pre>
  
  <p>Is there an existing algorithm or pattern that will do this or do I need to roll my own?</p>
  
  <p>Thanks</p>