title: conditional iterator over two arrays with STL
body: <p>I have two arrays. The typs are int and bool. 
  The bool array indicates if an element is already deleted or not. 
  Now I want a function that returns an iterator which only iterates over not deleted elements. Important is that the function should not allocate new memory (like for copying the element in a new vector). Is there a way to do this with standard STL? </p>
  
  <pre><code>    std::array&lt;int,5&gt;  element={ 1   , 2   , 4    , 8    , 10   };
      std::array&lt;bool,5&gt; deleted={ true, true, false, false, true };
      std::vector&lt;int&gt;::iterator getNotDeleted(){
               ...
      }
  </code></pre>
  
  <p>Example:</p>
  
  <pre><code>   deleted= { true, true, false, false, true };
     element= { 1   , 2   , 4    , 8    , 10   };
     getNotDeleted should return a std::vector&lt;int&gt;::iterator that Iterates over 
     {4,8}
  </code></pre>