title: Initialize a container with iterator range of container with different type
body: <p>Let's say we have <code>std::set&lt;int&gt;</code> and we want to create a <code>std::vector&lt;int&gt;</code> with all values from that set:</p>
  
  <pre><code>std::set&lt;int&gt; set;
  std::vector&lt;int&gt; vec( set.begin(), set.end() );
  </code></pre>
  
  <p>This is simple and elegant. But let's say I have a <code>std::map&lt;std::string,int&gt;</code> and I want to copy all values to <code>std::vector&lt;int&gt;</code>. Unfortunately there is no constructor, that accepts range of iterators and converter function. Why there is no such constructor provided? Is there another simple and elegant way to initialize one container with different type values?</p>