title: Erasing case in-sensitive duplicates from std::vector<std::string>
body: <p>This is weird, can't <code>erase</code> remove case in-sensitive duplicates from <code>std::vector</code>? Can someone please let me know how to achieve this? Here is my code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;algorithm&gt;
  #include &lt;vector&gt;
  #include &lt;string&gt;
  
  using namespace std;
  
  int main()
  {
      vector&lt;string&gt; stringVec = {"John", "Bob", "Joe", "Zack", "Randy", "bob", "joe", "andy"};
      sort(stringVec.begin(), stringVec.end());
      stringVec.erase(unique(stringVec.begin(), stringVec.end()),stringVec.end());
  
      for(unsigned i=0; i&lt;stringVec.size(); i++)
      {
          cout&lt;&lt;stringVec[i]&lt;&lt;endl;
      }
  
      return 0;
  }
  </code></pre>
  
  <p>Output for above code:</p>
  
  <pre><code>Success time: 0 memory: 3432 signal:0
  Bob
  Joe
  John
  Randy
  Zack
  andy
  bob
  joe
  </code></pre>
  
  <p>I expect at least <code>joe</code>, <code>bob</code> to be removed and <code>andy</code> to be placed in first index.</p>