As per The Complete reference C++ books, if we are planning to use an "user defined type" in an STL class like vector<MyType>, we need to atleast override the operator < () and operator == ().
1. Is it true? If yes, reason to override operator < () and operator ==().
2. Do we need to define these as member functions or global functions:
bool operator < (MyType first, MyType second) //global func()
bool operator < (MyType &rhs) //member func()