title: Overloading push_back() in vector to allow non-duplicate elements
body: <p>Can we overload the <code>push_back()</code> method in <code>std::vector</code> to allow non-duplicate elements? I know <code>std::set</code> and <code>std::unordered_set</code> are supposed to avoid duplicate elements, but <code>std::set</code> sorts the elements and <code>std::unordered_set</code> stores the elements in no particular order. I need to retrieve the elements in the order they are inserted, while ensuring duplicate elements are not inserted.</p>
  
  <p>Edit: There's a possible duplicate for this question <a href="https://stackoverflow.com/questions/11716997/queue-with-unique-entries-in-c">here</a>. The best solution to this duplicate proposes to have an auxiliary data structure and another custom method "add". This doesn't look good for me since(I'll put it in a separate documentation) the users inserting data in <code>std::vector</code> rarely refer to the documentation for any custom functions. If there's no efficient way though, this can be a last resort.</p>