title: "No match for operator-" error on simple iterator difference
body: <p>Here is my code:</p>
  
  <pre><code>#include &lt;set&gt;
  #include &lt;iostream&gt;
  using namespace std;
  
  int main(){
      set&lt;int&gt; st;
      st.insert(1);
      int x = st.find(1) - st.begin();
  
      return 0;
  }
  </code></pre>
  
  <p>I am getting <code>error: no match for 'operator-' in 'st.std::set&lt;_Key, _Compare, _Alloc&gt;::find [with _Key = int, _Compare = std::less&lt;int&gt;, _Alloc = std::allocator&lt;int&gt;](((const int&amp;)((const int*)(&amp;1)))) - st.std::set&lt;_Key, _Compare, _Alloc&gt;::begin [with _Key = int, _Compare = std::less&lt;int&gt;, _Alloc = std::allocator&lt;int&gt;]()'</code>.</p>
  
  <p>I am not able to figure out how did iterator difference stopped working all of a sudden! Am I missing something here?</p>